Category Archives: Windows

微软反间谍软件更名:Windows Defender

“在过去几个月中,我们不停努力工作以完善新一版微软Anti-Spyware反间谍软件技术。今天我们终于可以宣布,即将应用于Vista中的微软反间谍软件技术正式名称为--微软Windows Defender。”微软Anti-Malware Blog正式宣布。

Windows Defender将作为Vista标准组件与Vista最终版一同发布,相对其他第三方反间谍软件工具,微软Windows Defender将和Windows安全中心结合,提供更强大的恶意软件监测能力。

IIS网站防盗链下载的解决方案

什么是盗链

  “盗链”的定义是:此内容不在自己服务器上,而通过技术手段,绕过别人放广告有利益的最终页,直接在自己的有广告有利益的页面上向最终用户提供此内容。 常常是一些名不见经传的小网站来盗取一些有实力的大网站的地址(比如一些音乐、图片、软件的下载地址)然后放置在自己的网站中,通过这种方法盗取大网站的空间和流量。

  为什么会产生盗链

  一般浏览有一个重要的现象就是一个完整的页面并不是一次全部传送到客户端的。如果请求的是一个带有许多图片和其它信息的页面,那么最先的一个Http请求被传送回来的是这个页面的文本,然后通过客户端的浏览器对这段文本的解释执行,发现其中还有图片,那么客户端的浏览器会再发送一条Http请求,当这个请求被处理后那么这个图片文件会被传送到客户端,然后浏览器回将图片安放到页面的正确位置,就这样一个完整的页面也许要经过发送多条Http请求才能够被完整的显示。基于这样的机制,就会产生一个问题,那就是盗链问题:就是一个网站中如果没有起页面中所说的信息,例如图片信息,那么它完全可以将这个图片的连接到别的网站。这样没有任何资源的网站利用了别的网站的资源来展示给浏览者,提高了自己的访问量,而大部分浏览者又不会很容易地发现,这样显然,对于那个被利用了资源的网站是不公平的。一些不良网站为了不增加成本而扩充自己站点内容,经常盗用其他网站的链接。一方面损害了原网站的合法利益,另一方面又加重了服务器的负担。

  我遇到的盗链

  我的网站遇到最多的是两类盗链,一是图片盗链,二是文件盗链。曾经有一个访问量极大的网站盗链我网站的图片,一天竟然消耗了数G的流量。同时,我站放的不少几十兆的大型软件也常遭到文件盗链,大量消耗我站资源。

  盗链的解决方案

  其实通过WEB服务器的URL过滤技术,这个伤脑筋的问题会很容易得到解决。  

  如果WEB服务器用的是APACHE的话,那么使用APACHE自带的Url Rewrite功能可以很轻松地防止各种盗链,其原理是检查REFER,如果REFER的信息来自其他网站则禁止访问所需要的资源。

  那么,IIS支持UrlRewrite吗?

  答案很简单,不支持。但是我们可以通过安装第三方服务器扩展让IIS支持。 

  目前有一种产品能比较好地支持IIS的UrlRewrite,名字叫ISAPI_Rewrite。 

  下载地址在: http://www.helicontech.com/download/

  这里只有ISAPI Rewrite的一个LITE版本是免费的,其它都是trial版本。ISAPI Rewrite Lite的版本功能不支持虚拟站点配置,元数据监测和自动缓存清理。 但是基本的UrlRewrite功能都支持。

  如何进行UrlRewrite的设置? 

  isapi_rewrite利用正则表达式进行替换规则的表示。 

  下面是一个简单的例子,我想让我们的用户输入 http://localhost/test-12314.html 实际上访问的是 http://localhost/test.asp?id=12314 。那么我们的匹配表达式应该是 /test-([0-9]*).html 对应的格式化表达式应该为 /test.asp?id=$1 。 

  进行正则表达式的编写的时候,可以利用isapi_rewrite提供的正则表达式测试工具(默认安装提供),进行调试。做好了匹配表达式和格式化表达式,我们可以把它们放到安装目录下的httpd.ini里面。文件保存后,不需重新启动iis即可生效。 

  对于我的网站,我防盗链的方法是在httpd.ini里面加入如下语句

RewriteCond Host: (.+)

RewriteCond Referer: (?!http://1. *).*

RewriteRule .*.(?:gif|jpg|png|exe|rar|zip) /block.gif [I,O]

  然后重启IIS,这时防盗链就开始起作用了,其他网站盗链过来的请求都会被拒绝。

  至此,我也终于可以摆脱了被盗链的烦恼了。

制作集成SATA驱动程序的Windows XP安装光盘

SATA硬盘有不少优点,但安装操作系统实在麻烦,不仅要抓住机会按“F6”键加载STAT的驱动程序,还要制作带驱动程序的软盘。要命的是如果新机器没有配置软驱,那可就大眼瞪小眼了……来制作一张含SATA驱动程序的WinXP安装光盘吧。你会发现:原来加载SATA硬盘驱动其实很简单。
 
为了不再让WinXP的安装过程需要通过软盘加载SATA驱动程序,很多人都梦想主板的SATA驱动程序集成到安装光盘中,本文就来DIY一张集成SATA驱动程序的Windows XP安装光盘!
 
Windows XP安装目录及文件准备
打开资源管理器,在一个拥有足够磁盘空间(空闲空间至少为700MB;如果将生成后的光盘镜像也放在该分区,则应当保证有一张光盘的双倍容量的空间,即1.4GB左右)的硬盘分区上创建一个文件夹,比如“D:XPSATA”,用于保存Windows XP的全部安装文件。
 
把一张完好的Windows XP安装光盘放入光驱,在资源管理器中将光盘中的文件全部选定,再复制到“D:XPSATA”目录中。
 
准备驱动程序文件
一般随主板附送的驱动程序安装光盘中都有SATA的驱动程序。打开光盘目录,寻找名称中含有“SATA”或“RAID”字符的文件夹;也可在主板制造商的网站或其它驱动程序下载站点(如:驱动之家“http://www.mydrivers.com”等)寻找与自己的主板芯片组相匹配的SATA驱动程序。
 
在D盘中建立一个新的目录(如“STATDRV”),然后将找到的SATA驱动程序文件全部拷贝到这个目录中(D:SATADRV)。这里我们以Si3112的SATA驱动程序为例进行介绍。其它类型的SATA驱动程序的集成步骤几乎完全相同,所不同的仅仅是驱动程序文件名的不同而已。
 
在这个“D:STATDRV”的文件夹中,一定会有一个扩展名为“.inf”或“.oem”的小文件,如“oemsetup.inf”或者“txtsetup.oem”等(本例中为“txtsetup.oem”),用记事本程序打开它,随后要用!
 
编辑“txtsetup.sif”文件
打开“D:XPSATAI386”文件夹,找到一个名为“txtsetup.sif” 的文件,这是Windows XP在安装时加载驱动程序的信息文件,用记事本程序打开它。
 
按“Ctrl+F”快捷键,打开查找对话框,以“[SourceDisksFiles]”为关键字进行查找(图1)。找到这个字段后,其下面已经存在一些内容(图2)。翻页到这个字段的末尾(注意:不是整个文件内容的末尾),添加以下内容:“si3112.sys = 1,,,,,,3_,4,1”。
这里的“si3112.sys = 1,,,,,,3_,4,1”是描述驱动程序所在位置的代码。代码的格式为“filename_on_source=diskid,subdir,upgradecode,newinstallcode,spare,spare,newfilename”,在“txtsetup.sif”文件中的“[SourceDisksNames]”和“[WinntDirectories]”等字段中有详细的描述。有兴趣的朋友可以深入研究其它目录的对应关系,这里仅简单介绍。
在实际操作时,绝对不可以照搬代码!特别是扩展名为SYS的文件“si3112.sys”,它是SATA驱动程序目录“D:STATDRV”中的驱动程序文件名,如果读者的SATA驱动程序与本文所述的不同,则只需换成目录中相应的文件即可。
 
切换到前面打开的“txtsetup.oem”文件,以“[HardwareIds.”为关键字进行搜索,应该可以找到类似“[HardwareIds.SICS.Si3112]”的字段。
 
该字段下的代码如:“id ="PCIVEN_1095&DEV_3112 &SUBSYS_31121095", "Si3112"”。
 
切换到刚才打开的“txtsetup.sif”文件窗口中,以“[HardwareIdsDatabase]”为关键字进行搜索。找到后,将“txtsetup.oem”文件中“[HardwareIds.SICS.Si3112_XP]”字段下的代码拷贝到“txtsetup.sif”文件的“[HardwareIdsDatabase]”字段末尾。不过,我们需要更改一下代码的格式,如将“id ="PCIVEN_1095&DEV _3112&SUBSYS_31121095", "Si3112"”改为:“PCIVEN_1095&DEV_3112&SUBSYS_31121095 = "Si3112"”(其他代码修改方法相同),更改后的代码如下:
 
PCIVEN_1095&DEV_3112&SUBSYS_31121095 = "Si3112"
PCIVEN_1095&DEV_3112&SUBSYS_34238086 = "Si3112"
PCIVEN_1095&DEV_3112&SUBSYS_311215D9 = "Si3112"
PCIVEN_1095&DEV_3112&SUBSYS_B0021458 = "Si3112"
PCIVEN_1095&DEV_3112&SUBSYS_01661028 = "Si3112"
PCIVEN_1095&DEV_3112&SUBSYS_82141033 = "Si3112"
PCIVEN_1095&DEV_3512&SUBSYS_35121095 = "Si3112"
PCIVEN_1095&DEV_3512&SUBSYS_01661028 = "Si3112"
 
Easy提示
不同SATA驱动程序的代码内容各不相同,应该根据具体情况灵活处理。
 
检查拷贝修改的内容是否与原有的内容重复,如果有,则把重复的一行删除。接着在“txtsetup.sif”文件查找“[SCSI.load]”和“[SCSI]”字段,添加如下内容:
 
[SCSI.load]
si3112 = si3112.sys,4
 
[SCSI]
si3112 = "Silicon Image SiI 3112 SATALink Controller"
 
至此,我们就把自己的SATA驱动程序的相关信息添加到了Windows XP安装信息文件“txtsetup.sif”中了!
 
上述添加自定义SATA信息内容的步骤看似很复杂,其实也就是同时打开Windows XP安装文件目录中的“txtsetup.sif”文件和驱动程序目录中的“.inf”或“.oem”信息文件,然后将后者文件中相关字段下面的内容一一对应地移植到“txtsetup.sif”文件中。知道了方法,做起来就要容易些了!
修改“winnt.sif”文件内容
现在,我们已经完成了两个最重要的步骤:一是获取了SATA驱动程序文件,它们现在被保存在“D:STATDRV”文件夹中;二是修改了Windows XP安装时自动加载驱动程序的信息文件“txtsetup.sif”。但现在有一个新的问题:Windows XP在安装时如何知道它所需要的驱动程序文件在哪个目录下呢?
 
这个问题则需要通过修改“winnt.sif” 这个文件来解决。这个文件是Windows XP系统在安装时的附加信息文件,可以在其中指定非微软提供的第三方驱动程序的安装路径。
 
对于本例,在“D:XPSTATI386”文件夹中用记事本创建一个文本文件,写好内容后,再将文件名改为“winnt.sif”即可。
 
Easy提示
在用记事本保存文件时,一定要输入完整的文件名,并且一定要用半角的双引号将文件名引起来,如“"winnt.sif"”,否则实际上生成的实际上仍然是个文本文件(Winnt.sif.txt),这将导致安装过程中出错,STAT驱动程序无法自动加载!
 
在“winnt.sif”文件中添加以下内容(如果已经存在部分内容,则应进行修改或添加,且保证每行的内容不要重复):
[Unattended]
OemPreinstall=Yes
OemPnPDriversPath="STATDRV"
 
上述代码最后一句引号中的内容是指随后生成光盘时,驱动程序相对于光盘根目录所在的相对路径。由于我们打算把保存驱动程序的“D:STATDRV”文件夹放到新生成的安装光盘的根目录,因此不必包含任何子目录路径(图3)。
 
将SATA驱动压缩到安装文件中
使用支持CAB文件格式的工具(如WinRAR等),将驱动程序目录中扩展名为SYS的文件添加到WindXP安装目录的CAB文件中。
 
这里我们可以使用Windows XP本身附带的一个命令行工具“makecab.exe”,它位于“C:WINDOWSSystem32”目录下。由于“System32”是默认的搜索路径,因此使用时不需要程序所在的路径。
 
在开始菜单中打开“运行”对话框,输入如下命令:“MAKECAB D:STATDRVSI3112.SYS D:XP-STATi386SI3112.SY_”(图4)。
 
重新生成安装光盘
经过上述步骤,现在已经是万事俱备,只待刻盘了!
 
准备任意一款支持制作可引导型光盘的工具程序,如经典的软件“WinISO”、“ISOCommander”及国产软件“UltraISO”等均可。生成可引导光盘的方法有很多种,为避免大家到处寻找那些生僻的工具软件,这里以UltraISO为例,分若干个步骤进行:
 
(1)制作原始安装光盘镜像
这一步的目的是方便从制作出来的光盘镜像中提取引导文件。其实也有专门的直接提取光盘引导区的工具,但操作稍麻烦,因此在这里多花费一两分钟还是很值得的。
 
将Windows XP的原始安装光盘放入光驱中,启动UltraISO,按“F5”键,或者执行“工具”菜单中的“制作光盘镜像文件”(图5),根据提示指定一个镜像文件的保存位置,随后程序会自动开始读取光盘并完成镜像文件的制作。
盘镜像中的引导信息
在UltraISO主界面中,执行“启动光盘”菜单中的“保存引导文件”命令(图6),将引导信息保存到硬盘上备用,比如保存为“D:Boot.bin”。
(3)新建光盘镜像
在UltraISO的“文件”菜单中执行“新建”命令;从资源管理器中,将前面我们已经准备好的“D:XPSTAT”文件夹中的所有文件拖入UltraISO右上侧的文件窗口中。
 
将“D:STATDRV”目录直接拖放到UltraISO右上侧的文件窗口中,完成后在光盘的根目录中应当可以看到“STATDRV”的文件夹。
 
Easy提示
拖放时一定不要包含XPSTAT目录本身!也就是说,文件添加成功后,在光盘的根目录下应当可以看到“I386”文件夹。
 
(4)加载引导信息文件
执行“启动光盘”菜单中的“加载引导文件”命令,找到上一步提取的光盘镜像的引导文件,即“D:Boot.bin”。现在,新建的光盘镜像就具备与原版Windows XP安装光盘相同的引导功能了。
 
(5)保存光盘镜像
按“CTRL+S”或者执行“文件”→“保存”命令,指定一个保存光盘镜像的路径和文件名(如“F:XPSTAT.ISO”等),确定后UltraISO就开始向指定路径生成光盘镜像文件了。
 
(6)刻录安装光盘
使用Nero或者其他任意一款支持光盘镜像文件刻录的工具软件,将上述得到的光盘镜像文件(这里即F:XPSTAT.ISO)刻录到光盘中。现在,用这张安装盘在支持SATA的硬件环境下全新安装Windows XP,你就既不必按F6,也不需使用什么软盘,非常方便。
 
制作集成SATA驱动程序的Windows XP安装光盘是一件比较复杂的工作,任何一个小小的失误都可能导致无法正确地加载驱动程序。此外,不同主板附带的SATA驱动程序的文件名称、数量、信息文件的内容各不相同,在集成时不能硬套,只有举一反三才能成功。