本帖最后由 IOU 于 2011-4-21 15:38 编辑
fscmd.rar
(367.09 KB, 下载次数: 2)
fscmd以后发展方向定为“数据恢复”
fscmd由来,最开始是定为fs.dll的使用范例(console.exe),接下来是发现有些功能自己需要用,所以开始慢慢完善,最后形成了fscmd。不过,最近发现,由于着意于fscmd,fs.dll本身已经很久没用动过了,另外,目前一般需要的功能都已经有了。重心也该转过来了。
在以后的发展发向上,也考虑了比较久,觉得,强行删除能力其实并不是那么重要,还是数据恢复比较有趣。所以,方向定为数据恢复。
至于何时再更新,那不一定了,毕竟我本身并不是IT行业的。
4.12
修复了可以解决的bug
fscmd较长时间内停止更新
********************************************************************************************************************
下面为详细介绍: Fscmd应用教程
目录
基础命令篇
实战分析篇
一 查看伪加密的文件
二 强行复制被锁定(保护)的文件
三 隐藏的rootkit
四 隐藏的流及目录
五 损坏的虚拟机系统及孤立的快照
六 丢失的分区
七 已删除的文件
八 初识批处理
声明:下面所提到的其他软件在测试所针对方面可能存在不足,并不代表它们本身的真实能力同样存在问题。
教程doc格式下载
Fscmd应用教程.7z
(1.25 MB, 下载次数: 1)
基础命令篇 Q、启动fscmd时一闪而过或者提示“使用了错误版本的fs.dll,请重新下载。” A:通常发生这种情况是下载了新的版本的fscmd后直接放在了原来的地方,fscmd检验到dll不是当前用的版本,就会提示错误,解决办法是删除原来的fs.dll。
1、 目录(文件)的名字打不出来,怎么进去呢?“dir /i ”,显示目录所
对应的序号,然后可以根据序号来操作,比如进入目录“cd /i:9”,就进入了序号为9的目录。如果要删除或重命名的话“del /i:9”、“ren /i:9 newname”。 2、dir 显示的东西太多了,一下子看不完,怎么办呢?“dir >filename”,将dir的结果重定向到filename中,然后可以用记事本打开慢慢看J。如果知道文件的一部分名称,也可以“dir filter”,则只显示含有“filter”的文件,注意,不支持通配符。 3、有一个目录(畸形目录),windows下进不去,fscmd可以进,但操作不是很方便……“ren old new”,可以直接为目录改名,新旧名称都支持畸形目录。 4、一个可执行文件,可是它的扩展名是“.txt”,我可以运行它吗?可以。“run filename”,强制运行一个文件而忽略它的扩展名。 5、一首歌曲,我想听听看,但不想再打开资源管理器,怎么办?直接“filename”,fscmd会调用播放器为您打开。 6、这个盘空间占用不太正常,是不是有人隐藏了什么东西?也许是电影?“find /s /tl 50000000”将为您找出所有当前目录及子目录大于50000000字节的文件(可以大概认为是50M),藏的再深也可以帮您找出来。 7、找是找到了,但它们很分散,我想复制出来,怎么办呢?“find /s /tl 50000000 /copy:z:\movie”,将会为您把大于50M(大概)的文件复制到“z:\movie”目录去(必须存在)。 8、我的电脑有没有谁隐藏了分区呢?“list”,您可以查看分区信息。 9、发现了一个隐藏分区,我该怎么查看?它是硬盘0上的分区3。“mount /d:0 /p:3”,将会为您加载这个分区。(Mount后,会切换到“?:\”,这表示是在windows不支持的操作模式下,这种模式不支持任何写操作。)“dir”下,就可以浏览了。 10、“mount”后查看结束了,我该如何退出?“c:”,将会为您切换到C盘。 11、“reset”,这是干什么的?重新启动?不,这个是复位程序内部参数的,多次mount等操作后,可能出现内部参数混乱的情况,用reset把它们设置到一开始的值。 12、我想看看网络正常不正常,可以ping一下么?可以,您可以调用任何cmd支持的外部命令,直接和cmd下一样输就可以了。 13、我想用cmd的内部命令,怎么办呢?再启动一个cmd?不用,您只需要在fscmd下执行cmd,所有操作将会为您转到系统cmd下,包括内部命令。想回到fscmd,只需要exit。 14、黑白色太单调了……“color”将会为您切换到有颜色的世界。
15、我想看看当前目录及子目录下所有文件,看看到底有些什么。。。“find /s /ne *”,可以为您列出当前目录及子目录的所有文件。
16、不是不支持通配符吗?怎么又有*呢?“find /s /ne *”中的*并不是通配符,而确实只是一个*号,/ne的意思是不包含,所以这个命令的意思是查找所有文件名中不含*的,因为*是不受支持的文件名,所以一般而言,所有文件名都是不含*的,也就可以列出所有文件了。
17、vdisk,这个命令好复杂啊,什么基础的都不明白。您可以看下面的实战分析篇,有一部分就详细讲解了vdisk的用法。 实战分析篇一、
查看伪加密的文件什么是伪加密相信也不用我多说了,如下图 2011-3-5 13:01 上传
下载附件 (70.01 KB)
怎么样,是不是觉得这根本是一个空的文件夹呢?让我们来看看xuetr的结果吧。
2011-3-5 13:01 上传
下载附件 (25.65 KB)
还是没有?那么它是否是真的空的呢?fscmd来看下
2011-3-5 13:01 上传
下载附件 (18.27 KB)
我们可以看到,有一个目录,名字是”.”,短文件名是e200~1,这就是一种伪加密的方法了,常规方法不可见,甚至有的ark也看不见(原因应该是过滤掉了),这种情况下,用fscmd就可以轻松发现,也可以对它们正常操作,所以,所有用伪加密的,可以和这种加密方法说BYE BYE了。 如何里面的内容,一个个找?----不,当然不是,别忘了我们有find,如下 Find /ne * /s 什么意思呢? /s的意思包含子目录,/ne *呢,就是说文件名不包含*,注意,这里的*不是通配符(对于直接磁盘分析来说,文件名中基本任何符号都是可能的,包含*),一般来说文件名中含*的情况不太会碰到,所以可以这么做,你也可以
2011-3-5 13:01 上传
下载附件 (17.67 KB)
“find /ne 我就不用*”,试试看,结果是不是一样呢?
二、强行复制被锁定(保护)的文件 最简单的例子,注册表文件,如果你试着复制,它们,会提示
2011-3-5 13:01 上传
下载附件 (40.74 KB)
或者是其他类型的保护文件,如下图,虽然提示路径,但实际复制失败了。
2011-3-5 13:01 上传
下载附件 (23.07 KB)
fscmd
2011-3-5 13:01 上传
下载附件 (65.56 KB)
三、隐藏的rootkit
Rootkit的危害不用多说,要对付它们,首先就得找到它们,如下图的上半部分,我们看到了一个普通的文件夹。可实际上,却隐藏了不为人知的秘密……
2011-3-5 13:01 上传
下载附件 (32.32 KB)
2011-3-5 13:01 上传
下载附件 (12.04 KB)
当然,这并不是一个真的rootkit,但它的隐藏能力一点不会次于一般的rootkit。 四、隐藏的流及目录 流?NTFS流?目录不是只要勾上显示隐藏的文件就可以了吗? …你落伍了。有些人看到这个题目可能这么想。 不过,你确定吗?你确定只有NTFS才有流,你确定只有那么一种隐藏的目录? 好吧,让我们来看一下。 2011-3-6 10:19 上传
下载附件 (51.84 KB)
如图,很干净的一个盘,只有system.ini这一个文件,不过你确认没有其他东西了吗? 我们把这个文件复制到其他盘去,比如就桌面上吧。 2011-3-6 10:19 上传
下载附件 (101.02 KB)
?怎么system.ini多了个流,刚才没有发现的啊?….系统自己生成的?让我们来看一看流的内容。 2011-3-6 10:19 上传
下载附件 (111.01 KB)
可以看到,其中明显是dir的结果,那么就不可能是系统自带的了,那么是…..对了,回想下本节的题目吧,这也是流,不过不是ntfs,而是udf。让我们用fscmd来看下能不能有所发现吧。 看到了吗?红色的Extra_Attr_Stream表示有流文件,名字是1。 2011-3-6 10:19 上传
下载附件 (17.84 KB)
让我们再来看看隐藏的目录吧。 2011-3-6 10:19 上传
下载附件 (56.25 KB)
没有目录,有人也许会说文件夹选项中的隐藏没开,不过大家不会认为xuetr会理系统的隐藏有没开吧? 再看它的镜像文件 2011-3-6 10:19 上传
下载附件 (49.12 KB)
怎么有两个qwe,而且一个目录一个文件? 再看看 2011-3-6 10:19 上传
下载附件 (19.42 KB)
有一个qwe目录,没有qwe文件,这是怎么回事呢?其实这是一种很经典的隐藏方式,目录隐藏文件,就是把本来该是目录的,修改其属性成为文件,另外,设置其属性为隐藏,就成了上面这样,常规不可见,ark不可见,只有打包成了镜像,才能由压缩软件查看,但如果是光盘的话… 五、损坏的虚拟机系统及孤立的快照 目前常用的虚拟机有三种,virtual box ,virtual pc,vmware,我们可以用它们来做各种各样的事,有的人用来测试病毒、试验软件、体验新系统、玩游戏,也有人用来工作、开服务器---但不管做什么,偶尔可能出现… 2011-3-6 15:56 上传
下载附件 (1.59 KB)
怎么办呢?用PE?对,这是一个办法,但如果身边恰好没有合适的PE呢? 我们先去看下这个虚拟机对应的虚拟硬盘文件E:\virtual\test1.vdi,然后看下有几个快照。 2011-3-6 15:56 上传
下载附件 (9.3 KB)
2011-3-6 15:56 上传
下载附件 (30.63 KB)
嗯,只有一个,那么只要三步就可以了 vdisk /b "E:\virtual\test1.vdi" vdisk E:\virtual\test\Snapshots\{eb57d3d8-698d-43bc-a5e3-dfa21638eac2}.vdi vdisk open 第一步是设定基础虚拟磁盘文件,就是创建虚拟机是最开始的那个文件 第二步是添加快照,有几个加几个,按时间顺序,越是旧的越先,最新的放最后, 第三步是开启这个功能,然后,有什么重要的,你就可以复制出来了 想要往里面放点东西?抱歉,由于是自己解析的文件格式,写就不支持了。真的想放东西,还得找个PE。 看到这,是不是觉得不是很方便,想修复下虚拟机系统都不行?事实确实是如此,不过fscmd也有pe不能做到的事,比如:
“我在虚拟机里的一个文件丢了,我只知道以前肯定备份过(在某个快照里有),不过不知道是哪个快照了?……” 2011-3-6 15:56 上传
下载附件 (10.88 KB)
一个个恢复然后再试?可是我已经装了很多软件,有的已经没有安装程序了。 怎么办呢?PE?PE进去也只能看到最新的快照内容? 让我们来试下fscmd。 先看下基础的 2011-3-6 15:56 上传
下载附件 (10.65 KB)
可以看到,桌面上没有东西(0000-00-00 00:00:00不是真的一个文件,NTFS空目录会这样显示) 加个快照吧 2011-3-6 15:56 上传
下载附件 (21.99 KB)
由上图,多了个软件,这就是快照里在桌面的内容了,我们继续? 2011-3-6 15:56 上传
下载附件 (28.75 KB)
这是第二个快照的内容,桌面上没有新的,不过其他目录多了很多,实际上呢,根目录多了个vc目录 2011-3-6 15:56 上传
下载附件 (19.68 KB)
而最新的快照是这样的 2011-3-6 15:56 上传
下载附件 (20.08 KB)
时间变了,还多了目录。 当然,fscmd不只针对自己的虚拟机,其他下载的虚拟机虚拟硬盘文件也可以,或者你是否想试下只有一个快照而丢了基础的虚拟磁盘文件?呵呵,恐怕你要失望了,只有一个快照是很难正确浏览的,因为很多东西在基础的文件里,丢了的话,往往浏览的时候会出错,同样,李代桃僵这样的想法也只能是不得已而为之,别报太大希望。 六、丢失的分区 1、隐藏的分区 2011-3-7 10:46 上传
下载附件 (34.85 KB)
表面看上去没有什么,一般人也很少到磁盘管理里去看看 2011-3-7 10:46 上传
下载附件 (10.73 KB)
这种情况,只要分配一个盘符就可以了,不过有的时候是用软件隐藏的,在磁盘管理里可能不起作用,这时就可以用fscmd了。 2011-3-7 10:46 上传
下载附件 (21.01 KB)
2、真正丢失的分区。 “我的分区丢了。。。我只想删除盘符的,谁知道一不小心。。。” 2011-3-7 10:46 上传
下载附件 (34.76 KB)
还有什么办法吗? Fscmd?让我们试下。 2011-3-7 10:46 上传
下载附件 (18.52 KB)
也不行啊,只由一个分区,看不到删除的那个分区了。L。 别急,让我们来看看mount命令。 C:\Documents and Settings\Administrator\桌面>mount 加载文件或硬盘分区。 MOUNT [/D:xx] [/P:xx] [FILENAME] [/pp:xx] [/AS:[DISK]|[PARTITION]]
/D:xx
指定要加载的硬盘号,xx默认为0。
/P:xx
指定要加载的分区,xx默认为1。
FILENAME
指定加载的文件名,含有此参数时忽略/D:xx。
/AS:[DISK]|[PARTITION]
指定加载的文件状态(磁盘或分区),默认为DISK。
/PP:xx 指定要加载的分区位置,适用于分区表损坏但又知道分区开始位置的情况。 看到了吗?红色的/pp:xx,这个是干什么的,难道…对了,就是针对这种情况的。但是我们不知道开始位置啊? 没关系,我们可以找。当然,不是用fscmd了,用winhex(效率原因,没有加入此功能,有需要的话可以考虑加一个)。 我们打开winhex,打开硬盘0,然后偏移量转到9615320064(list 列举出来的分区一大小),然后查找16进制
2011-3-7 10:46 上传
下载附件 (11.91 KB)
EB52904E544653,不一会,我们发现找到了。
2011-3-7 10:47 上传
下载附件 (18.61 KB)
位置是9615384576,试试吧。 2011-3-7 10:47 上传
下载附件 (23.5 KB)
耶,成功了。快把你的东西转移出去吧。 2011-3-7 10:47 上传
下载附件 (25.91 KB)
备注:以上查找步骤主要是定位丢失分区的dbr开始位置,16进制EB52904E544653是NTFS分区的开头标记,FAT分区是另外的标记的。你也可以自己手工找,也就是第一个分区的大小9615320064+32256(第一个分区的开头)+32256(一般分区头的空余)=9515384576。如果是像上面那样删除的话,差不多是在这个位置,如果你是重新分区的话,那么只能全盘查找了,需要记得分区的大概容量,这样才找得快点,不然,要有耐心了。 接上…… 2011-3-12,fscmd加入了搜索丢失分区功能,我们来看下。 2011-3-12 09:50 上传
下载附件 (22.27 KB)
我们假设不知道分区信息,设定开始为0,结束为整个硬盘,硬盘号是0(用list可以看有几个硬盘),间隔什么的都默认。 那么就是
Searchdisk /b:0
,看看速度吧,大概9:30开始的,整个硬盘大小为10G。下面搜索了26% 2011-3-12 09:50 上传
下载附件 (13.65 KB)
60% 2011-3-12 09:50 上传
下载附件 (16.12 KB)
100% 2011-3-12 09:50 上传
下载附件 (21.98 KB)
可以看到找到了上次说的丢失分区,开始位置9615384576。至于搜索速度,快得时候有4G每分钟,慢的像上面这个1.7G左右。 接下来就可以mount /pp:9615384576来加载这个分区察看是否正确了。 对于虚拟硬盘文件,目前采用的是先vdisk,然后再searchdisk,不需要指定硬盘号。 七、已删除的文件 我不小心把一个重要文件删了,回收站也没有了,怎么办呢?有办法恢复吗? 2011-3-27 11:44 上传
下载附件 (43.71 KB)
用finaldata看下,已破坏的文件,再恢复到C盘(数据恢复基本概念,不对待恢复文件所在的分区进行任何写操作。) 2011-3-27 11:44 上传
下载附件 (53.3 KB)
不行,提示已损坏…… 2011-3-27 11:44 上传
下载附件 (21.24 KB)
我们用fscmd来看看 应该就是划红线的那个了,可是文件名都是乱码了,该怎么打呢? 让我们来看下rcopy这个命令。 d:\>help rcopy 将一个文件复制到另一个位置。 RCOPY [id64:id32] [destination]
id64:id32
文件的id属性,此属性可以从rdir获取。
destination
为新文件指定目录和/或文件名,不支持默认名称。
SAMPLE:
rcopy 0:26
c:\1.txt
--复制id属性为0:26的文件到c:\1.txt,如id对应的文件为已
删除文件,请勿和源文件在同一磁盘分区。 可以看到,rcopy命令并不需要打文件名,只需要id,而上面这个rar文件的id是ID_64:9400320,ID_32:832,所以应该是 Rcopy 9400320:832 c:\1.rar 2011-3-27 11:44 上传
下载附件 (22.42 KB)
恢复完成,打开看看。 2011-3-27 11:44 上传
下载附件 (58.7 KB)
从上图可以看到,虽然提示恢复完成了,但仍出现了错误,只能恢复一部分信息。 这是什么原因呢? 其实原因很简单,压缩文件不是连续储存的缘故。删除后,簇链已丢失,这种情况下,一般免费软件是不能恢复的,因为其中含有碎片重组的技术,这样的技术通常都是各自保密的(原理倒是简单的,实际操作比较复杂),当然,fscmd也不会提供这样的功能。 那么怎么办呢? 如果您熟悉文件结构的话,可以尝试手工恢复,如果您不熟悉,那么找数据恢复公司是比较好的选择,或者,有可能,能够找到熟悉的人免费帮您恢复也说不定,最后,或者有某些数据恢复软件说不定提供了这样的功能,不过,需要您一个个试,但,别抱太大希望,这样的软件通常都是收费的。 如果都不是,那么建议您放弃。
另外,如果待恢复文件在系统盘,那么建议您立刻关机,然后用PE启动,在PE上尝试恢复。
八、初识批处理 从2011.4开始,fscmd添加了一个新的功能,批处理,其对应的文件格式为.yls, 您可以通过install命令来注册这个类型,也能通过uninstall来取消。 注册后,您可以发现,.yls扩展名的文件图标变成了 2011-4-9 15:25 上传
下载附件 (13.4 KB)
也就是fscmd程序的图标,这表示您已经成功注册了yls类型(某些系统可能需要重启来使图标改变。) 那么,批处理能够实现哪些功能呢? 实际上,所有fscmd支持的命令您都可以用在批处理中,比如常用的dir、cd命令,以及不常用的searchdisk或者cmd外部命令甚至内部命令都可以支持。当然,也有不支持的,比如for,goto这一类。 那么yls文件的格式是怎样的呢? 让我们以一个简单的例子来说明。 dir cmd dir 这不是批处理文件吗?是的,这就是批处理,和cmd的批处理结构是一样的,每个命令一行。下面我们看下运行结果。 2011-4-9 15:25 上传
下载附件 (27.2 KB)
可以看到,一个是fscmd的dir,另一个是cmd的dir,两个命令都可以正常运行。 上面所说的是一种执行方式,在fscmd里执行所有命令。那么相对应的,还有一种,就是在cmd里执行所有fscmd的命令。 在使用前,先说明下,在cmd里执行fscmd命令时,fscmd最好不要再调用cmd的命令,包括pause,cls,否则很可能会出现不可知的错误。 为了方便扩展,在yls批处理中,加入了%0、%1…这样的参数,%0代表yls批处理本身,%1代表第一个参数… 如 2.bat内容: 1.yls "C:\windows" Pause 1.yls内容: cd %1 dir 那么我们执行2.bat时结果应该是怎样的呢? 1.yls "C:\windows",说明1.yls的参数是"C:\windows",也就是 Cd %1就是cd "C:\windows",然后再dir,那么我们来看下是否真的如分析呢? 2011-4-9 15:25 上传
下载附件 (33.73 KB)
从上图可以看到,确实是这样的。 我们继续扩展下,用fscmd列出批处理命令所在目录的文件,直接dir,好像不行,列出的是yls文件所在的目录。 2011-4-9 15:25 上传
下载附件 (20.32 KB)
那么,怎么做呢?对了,%~dp0,意思是获得cmd批处理所在的路径(不含文件名),另外,由于fscmd处理参数时是按空格及双引号分割的,所以,在使用和文件路径有关的参数时,请加双引号,比如%~dp0写成”%~dp0”。 2011-4-9 15:25 上传
下载附件 (28.73 KB)
还能更复杂一点么? 好吧,试试这个。 2011-4-9 15:25 上传
下载附件 (22.9 KB)
上面的1.bat究竟是干什么的呢?在这里不做回答,有兴趣的话可以建这样一个批处理试试。注意:1.yls和2.yls的位置应该是1.bat中指定的位置。 上面是考考大家的,下面这个不考了 显示fscmd可以发现而cmd无法发现的文件。Bat文件在哪个目录,就查找那个目录。 2011-4-9 16:17 上传
下载附件 (26.44 KB)
限于个人对批处理理解有限,更多的功能可能需要大家自己发掘了。
教程基本到这结束,如果fscmd有新功能且比较复杂,将会继续更新。
|