社区应用 最新帖子 精华区 社区服务 会员列表 统计排行
  • 392阅读
  • 0回复

[分享]从Wind8内置SmartScreen看文件流

楼层直达
z3960 
级别: 茶馆馆主
发帖
770593
飞翔币
207694
威望
215657
飞扬币
2511651
信誉值
8

SmartScreen功能原本是为了保护用户不进入危险或仿冒的网站的,在Windows 8当中,这功能已经被系统接受。如果你打开一个从网络上面下载的程序,就会得到以下提示:
  
系统会在打开文件的时候检查该文件,如果不符合某些规则就弹出提示框。笔者最开始在使用Windows 8 的时候就被这样的提示迷惑了,认为程序坏掉了。其实是系统对于文件的处理不同了。网络上关于关闭它的方法也就很多,这里不是重点,我们来看看到底是文件的什么地方会让系统认为它不安全。  对于其点击右键,可以发现在属性当中的最下面多了一小部分(红色框):
  
提示我们这个文件是从别的地方获取到的,因此为了安全,系统自动锁上了,点击按钮就可以解锁并正常访问了,之后也不会再次提醒。在学习NTFS的时候发现了其中的秘密:系统使用一个特殊的文件流acadbtn.dll来保存这个信息,而使用普通方法是看不到这样的内容。而该文件流的流名字是Zone.Identifier,大小只有20来字节,查看的话需要使用命令提示符来进行,在命令提示符当中输入:  more < IFEO_V2.exe:Zone.Identifier

 
 就会看到如下内容:  [ZoneTransfer]
  ZoneId=3
 
 这其实就是一个标识符,其中ZoneId代表了所在的区域。这里的区域是对应于IE当中的区域设置,1代表受信任的站点,2代表本地Intranet,3代表Internet,4代表受限制的站点。根据默认设置,1和2都可以正常使用而没有提示,3就会得到如上提示。如果ZoneId为4就会得到下面的错误信息:  系统认为这是一个不信任的程序,因此系统拒绝打开该文件。在此,除非手动解锁或者调整安全设置,这个程序是运行不了的。  微软提供了一个查看文件流的工具: streams.exe 使用该工具可以查看某些teniodl.exe文件或文件夹的文件流,它可以列出流的大小和名字等详细信息。查看一个文件流具体内容使用 “more < 文件名:流名称”即可(不含引号)。由于Windows当中要求文件名不能包含冒号,所以使用常用的桌面程序是无法打开该流里边的内容的。
 
我不喜欢说话却每天说最多的话,我不喜欢笑却总笑个不停,身边的每个人都说我的生活好快乐,于是我也就认为自己真的快乐。可是为什么我会在一大群朋友中突然地就沉默,为什么在人群中看到个相似的背影就难过,看见秋天树木疯狂地掉叶子我就忘记了说话,看见天色渐晚路上暖黄色的灯火就忘记了自己原来的方向。