shs文件用什么可以打开?
我的一个朋友用word做了一些东西,据说是档案资料,拷出到桌面后就成了shs文件,双击是可以打开的。后来电脑出了问题,重装系统后打开就是乱码了,这是为什么啊?用什么可以打开这种文件啊。我在网上找了很多资料都说是碎片文件还说这种文件大多是病毒,但是这次不是啊,怎么办啊? 问题点数:0、回复次数:13Top
1 楼凤凰(最喜欢的游戏--HERO III)回复于 2004-08-27 16:25:37 得分 0
依照微软的解释,SHS文件是一类特殊的OLE(Object Linking and Embedding,对象连接和嵌入)对象,可以由Word文档或Excel电子表格创建。通过选择文档中文本或图像的一块区域,然后拖放该区域到桌面上的某处,就可以创建一个Windows碎片对象,或称为SHS文件(此文件是不可读文件)。但是你可以用任何其它你想要的文件名重新命名SHS文件,或者拖放SHS对象到另一个文档(同样地,你可以剪切和粘贴)。
也就是说,我们所输入的命令作为OLE对象嵌入到对象包装程序新建的文件中了,而微软为了能方便的将嵌入到文件的对象进行复制,使用了一种技术Shell ScrapObject(简称SHS),就是说,当你在不同文件间复制对象时,Windows是将对象包装成一个碎片对象来进行复制的。因此,一旦我们不是在文件间进行复制粘贴,而是直接将碎片对象粘贴到硬盘上,就会产生一个.SHS文件。这个碎片对象文件保存了原来对象的所具备的功能,原来对象包含的命令同样会被解析执行,这正是其可怕这处!
Top
2 楼凤凰(最喜欢的游戏--HERO III)回复于 2004-08-27 16:36:33 得分 0
一般都是word文档,用word试试Top
3 楼luckhj(|^ Never let anyone know what you are thinking ^|)回复于 2004-08-27 17:24:08 得分 0
给你个网址:
http://article.pchome.net/2003/03/26/8405.htm
自己看看关于SHS吧Top
4 楼zoezm()回复于 2004-08-27 17:26:55 得分 0
“……后来电脑出了问题,重装系统后打开就是乱码了……”
是用什么打开的呢?记事本?word?
Top
5 楼zhiqiu(http://www.bsdlover.cn(找兼职,谁有需求?))回复于 2004-08-27 18:03:20 得分 0
word不能打开?Top
6 楼haixiao868(锈豆地瓜)回复于 2004-08-28 13:38:32 得分 0
也就是双击打开,它会默认为用记事本打,用WORD打开也是如此一个情况。Top
7 楼haixiao868(锈豆地瓜)回复于 2004-08-28 13:39:15 得分 0
我已经了解什么是shs,关键是我现在要打开这个文件,查看其中的内容啊,老大?Top
8 楼haixiao868(锈豆地瓜)回复于 2004-08-31 11:23:59 得分 0
没人回答我了吗?Top
9 楼zoezm()回复于 2004-08-31 12:17:02 得分 0
能够打开……我觉得是文件本身已经损坏了:)Top
10 楼Davelu(豆腐)回复于 2004-08-31 12:23:24 得分 0
同意楼上的意见Top
11 楼haixiao868(锈豆地瓜)回复于 2004-09-07 12:31:45 得分 0
文件根本没有损坏,我放在别的电脑上就能用WORD打开。Top
12 楼YE0515(叶子)回复于 2004-09-07 13:37:20 得分 0
很多人都应该都见过windows产生的碎片文件,windows中有一种被称为碎片对象的文件(.shs文件)。如果你在邮件附件中收倒一份这样的文件,你敢不敢打开它呢。估计很多人都不会觉得这种文件是一个威胁。原因有几点:
1 碎片对象文件的缺省图标是一个和记事本文件图标相类似的图标,很容易会被误认为是一些文本的文档,用户对他的警惕心理也比较小。
2 .shs是一个无条件隐藏扩展名的文件。即使是在“资源管理器\工具\文件夹选项\查看”属性中将"隐藏已知文件扩展名"属性设为不隐藏,.shs文件仍然是隐藏。很多人都喜欢将文件扩展名显示出来(包括我),这样对文件的情况了解的更清楚些。可是一个test.txt.shs文件在浏览器中显示依然是test.txt.在你已经习惯了看到文件扩展名的情况下,你会对这样一个文件起疑心吗?
3 即使有疑心,你用任何杀毒软件都不会找到这个文件的一点问题,因为这个文件本身就没有病毒,也不是可执行的,而且还是系统文件。你会怀疑这样的文件吗?
*测试方法*
那么,碎片对象到底对用户的计算机会造成什么威胁呢?我们一起来作个测试就明白了。(测试环境是在windows 2000server中文版上进行的)。我们先在硬盘上创建一个测试用的文件test.txt(我创建的位置是e:\test.txt),然后我们来制作一个能删除这个测试文件的碎片对象文件。
1 先运行一个对象包装程序(packager.exe),我的win2000 server是在/winnt/system32下
2 新建一个文件后,打开菜单 文件->导入,这时会弹出一个文件对话框,让你选择一个文件。不用考虑,随便选择一个文件就可以了
3 然后打开 编辑->命令行,在弹出的命令行输入对话框中输入 cmd.exe /c del e:\test.txt,确定
4 选然后在菜单中选择 编辑->复制数据包
5 然后随便在硬盘上找个地,我就直接在桌面上了。在桌面上点击鼠标右键,在弹出菜单中选择 "粘贴",这时可以看到桌面创建了一个碎片对象文件。
现在我们可以双击一下这个文件,一闪而过地cmd窗口之后,在到e盘看看,测试文件e:\test.txt已经被删除了。现在知道了,当时在对象包装中输入地命令被执行了。好危险啊,要是这命令是删除系统中一个重要文件,或者是format什么的。不要告诉我你想用这方法去format 别人的硬盘吧。
*技术原理*
试验完了,我们来讲讲原理吧。懒的写了基础知识,到网上找了一段关于OLE的简单介绍,作者看见别骂我啊,多多原谅
---- OLE(Object Linking And Embedding)
---- 对象链接与嵌入,OLE允许你通过使用来自两个或多个WINDOWS应用程序的资源来创造复杂的 文本,OLE提供了方便的技术用来将文字和来自不同程序的数字表、图象和其他类型的数据组合起 来。为此,OLE定义了将对象附属于宿主文本的两个基本方法,链接与嵌入:
---- 嵌入:一个嵌入对象包含在宿主文本中。要创建或编辑一个嵌入对象的数据时,你可以在不 离开宿主文本的情况下激活源应用程序。此结果对象将保存在宿主文本中,而不是另外其它的文件。例如,你创建了一个字处理文本,其中包含嵌入Excel工作表。为了执行在此工作表上的操作, 你可以在此文本内部激活Excel。在保存了此字处理文件后,你同时也将嵌入的工作表数据保存了下来。
---- 链接:相比之下,一个链接对象却保存在外部文件中。宿主文本包含了对数据的引用以及对链接对象的映象,而不保存数据本身。在修订对象数据时,所做的改变显示在宿主文本中但却保存在外部文件中。例如,包含一个链接Excel工作表对象的字处理文本提供给你对用于编辑工作表数据的Excel资源的完整访问能力。此文本包含了对分立工作表文件的引用。如果此工作表恰好被链接入任何其它文本中则可以从任何一个它的宿主文本中编辑其数据。Windows在需要时可以更新此链接关系(简称链),这样便可以给每一个宿主文本提供数据的最新版本。
也就是说,我们所输入的命令作为OLE对象嵌入到对象包装程序新建的文件中了,而微软为了能方便的将嵌入到文件的对象进行复制,使用了一种技术Shell Scrap Object(简称SHS),就是说,当你在不同文件间复制对象时,windows是将对象包装成一个碎片对象来进行复制的。因此,一旦我们不是在文件间进行复制粘贴,而是直接将碎片对象粘贴到硬盘上,就会产生一个.shs文件。这个碎片对象文件保存了原来对象的所具备的功能,原来对象包含的命令同样会被解析执行。
*解决方法*
既然这种文件可能会带来危险,那么我们该如何防止来自这种文件的威胁呢?
shs文件既然不是可执行文件,当然需要其他的程序来解析执行了,我们去掉解析执行的关联就可以简单防止这种文件中潜伏的威胁了。
打开注册表编辑器:regedit.exe
在[HKEY_CLASSES_ROOT\.shs]主键下,将默认值ShellScrap删除,然后在双击.shs文件,这回不会去执行了,弹出让我们选择打开.shs文件需要的程序的对话框。跟彻底一点的办法是将[HKEY_CLASSES_ROOT\ShellScrap\shell\open\command]下的打开.shs文件的关联完全去掉,现在即使双击.shs文件,连选择运行的程序也对话框也不打开了,直接要求在控制面板重建文件关联。
*题外的话*
在windows系统中,还存在其他一些类似的的文件后缀名,如.shb、.lnk等等,例如攻击者可以在快捷方式文件属性指向中同样嵌入恶意命令,对系统造成危害。
声明:本文仅作技术探讨,使用本文的方法恶意攻击他人找成的严重后果又攻击自负Top
13 楼haixiao868(锈豆地瓜)回复于 2004-09-08 09:21:45 得分 0
有没有搞错啊,这些东西是我N年以前就知道的,还用你们在这里说啊,要是不知道就别浪费时间和精力了。这些东西都是垃圾!算了不说了,生气!Top





