zoukankan      html  css  js  c++  java
  • 从Windows 8 内置的SmartScreen看文件流

    SmartScreen功能原本是为了保护用户不进入危险或仿冒的网站的,在Windows 8当中,这功能已经被系统接受。如果你打开一个从网络上面下载的程序,就会得到以下提示:

    Screenshot (68)

    系统会在打开文件的时候检查该文件,如果不符合某些规则就弹出提示框。笔者最开始在使用Windows 8 的时候就被这样的提示迷惑了,认为程序坏掉了。其实是系统对于文件的处理不同了。网络上关于关闭它的方法也就很多,这里不是重点,我们来看看到底是文件的什么地方会让系统认为它不安全。

    对于其点击右键,可以发现在属性当中的最下面多了一小部分(红色框):

    screenshot.118

    提示我们这个文件是从别的地方获取到的,因此为了安全,系统自动锁上了,点击按钮就可以解锁并正常访问了,之后也不会再次提醒。在学习NTFS的时候发现了其中的秘密:系统使用一个特殊的文件流来保存这个信息,而使用普通方法是看不到这样的内容。而该文件流的流名字是Zone.Identifier,大小只有20来字节,查看的话需要使用命令提示符来进行,在命令提示符当中输入:

    more < IFEO_V2.exe:Zone.Identifier

    screenshot.119

    就会看到如下内容:

    [ZoneTransfer]
    ZoneId=3

    这其实就是一个标识符,其中ZoneId代表了所在的区域。这里的区域是对应于IE当中的区域设置,1代表受信任的站点,2代表本地Intranet,3代表Internet,4代表受限制的站点。根据默认设置,1和2都可以正常使用而没有提示,3就会得到如上提示。如果ZoneId为4就会得到下面的错误信息:screenshot.120

    系统认为这是一个不信任的程序,因此系统拒绝打开该文件。在此,除非手动解锁或者调整安全设置,这个程序是运行不了的。

    微软提供了一个查看文件流的工具: streams.exe 使用该工具可以查看某些文件或文件夹的文件流,它可以列出流的大小和名字等详细信息。查看一个文件流具体内容使用 “more < 文件名:流名称”即可(不含引号)。由于Windows当中要求文件名不能包含冒号,所以使用常用的桌面程序是无法打开该流里边的内容的。

  • 相关阅读:
    PHPExcel常用方法总结
    ThinkPHP多语言在分组下的用法!
    derby 的字符集
    最小化msn,skype到右下角(Win 7)
    用javascript控制 youtube动画,直接打开html会失败
    maven 的本地仓库
    excel读取csv的字符集问题
    在dos控制台显示utf8字符
    关于在php和mysql中日期型date,datetime,timestamp的使用
    用 java jar执行时的classpath的问题
  • 原文地址:https://www.cnblogs.com/DaochenShi/p/2933524.html
Copyright © 2011-2022 走看看