3.WSH 是怎样工作的?
WSH 的工作流程,实际上就是脚本文件被解析并执行的过程。我们知道,现在脚本经常会被植入网页,其中包括 HTML 页面(客户机端)和 ASP 页面(服务器端)。对于植入 HTML 页面的脚本,其所需的解析引擎会由 IE 这样的网页浏览器载入;对于植入 ASP 页面的脚本,其所需的解析引擎会由 IIS(Internet Information Services)提供。
而对于出现在 HTML 和 ASP 页面之外的脚本(它们常以独立的文件形式存在),就需要经由 WSH 来处理了。在这里要插一句“废话”:WSH 的正常工作的前提,是你必须安装了微软 3.0 或更高版本的 IE,因为 WSH 在工作时会调用 IE 中的 VBScript 和 JScript 解析引擎。
现在,就让我们来看看脚本文件经由 WSH 执行的过程。为了更加直观,笔者根据有关资料绘制了一幅工作流程图,从图中大家能对 WSH 在脚本文件运行中所起到的作用有个理性认识。对于这个流程图,还需要补充两点:1、图中第(2、3)步,WSH 根据脚本文件后缀名,到系统注册表中查询所需的脚本引擎时,VBScript 和 JScript 两种语言的解析引擎是 Windows 系统中原有的,而其它脚本语言的解析引擎,如 PERL、TCL等,需要用户另行定义;2、第(5)步执行脚本命令时,一些脚本指令会使用到 WSH 内置对象所提供的服务(参见本文第二部分),例如处理注册表项。这时,脚本指令就会向 WSH 提出请求,并由 WSH 完成所需任务。也正是在这一步,WSH 的功用得到了淋漓尽致的发挥。
向下箭头 (1) 运行脚本文件
Windows Shell 双向箭头 Registry
向下箭头 (2)建立文件与Windows脚本的关联
Windows Scripting Host 双向箭头 Registry
(包括JScriptEngine,VBScri (3)判断运行文件需要何种
ptEngine和PERL,REXX,TCL, 脚本引擎
Python及其它) (4)解析完毕后启动相应的
脚本引擎
(5)执行脚本命令
原图传不上来,大家多包涵.
4.WSH 怎么用?
给大家推荐几个脚本文件利用 WSH 执行任务的实例
脚本文件的编写十分方便,你可以选用任意一个文字编辑软件进行编写,写完后,你只需将它保存为 WSH 所支持的文件名就行了(如 ..js 文件、.vbs 文件)。最常用的编辑器当然就是我们的记事本(Notepad)了,下面的实例都是以它作为工具编写的。
准备好了吗?让我们先来看一个最简单的例子吧。打开记事本,在上面写下:
WScript.Echo("走近 WSH")
好了,将它保存为以 ..vbs 或 .js 为后缀名(可千万不要弄成了 ..txt)的文件并退出记事本。双击执行这个文件,看看结果吧,是不是很有意思?
有了第一印象后,我们继续往下看。
这一次,我们要利用 WSH 完成一次创建十个文件夹的工作。代码如下:
dim objdir
set objdir=wscript.create
object("scripting.filesystem
object")
for k=1 to 10
anewfolder="c:\chapter" & k
objdir.createfolder(anewfolder)
next
同样,将它存为 .vbs 文件并退出。运行后,我们会发现,C 盘根目录下一次性多出了十个新文件夹。
最后,再举一个在服务器上的运用。下面的代码将帮助你重新启动指定的 IIS 服务:
' define a constant for stopped services
Const ADS_SERVICE_STOPPED = 1
' get an ADSI
object for a computer
Set objComputer = Get
Object("WinNT://MYCOMPUTER,computer")
' get an
object for a service
Set objService = objComputer.Get
Object("Service","MYSERVICE")
' check to see if the service is stopped
If (objService.Status = ADS_SERVICE_STOPPED) Then
' if the service is stopped, then start it
objService.Start
End If
将它以 startsvc.vbs 为名保存在 C: 盘根目录。并通过如下命令执行:CSCRIPT C:\STARTSVC.VBS 。运行后,经你指定的 IIS 服务项将被重新开启。
已经举了三个例子,其实,在 Windows 的 samples 目录下,有个 WSH 文件夹,那里面有不少很具代表性的 .vbs 和 .js 脚本文件。大家有空可以打开来看看,相信会受益匪浅的。
此外,利用 WSH ,我们还可以自己编写脚本文件来提高网络管理方面的效率。但由于受条件限制,本人在这方面的使用心得并不多,因此也就不好多说了^_^。不过,网上这方面现成的代码倒是很多,大家有兴趣可以去研究一下。
五、WSH 有不足吗?
答案当然是肯定的。任何事物都有两面性,WSH 也不例外。应该说,WSH 的优点在于它使我们可以充分利用脚本来实现计算机工作的自动化;但不可否认,也正是它的这一特点,使我们的系统又有了新的安全隐患。许多计算机病毒制造者正在热衷于用脚本语言来编制病毒,并利用 WSH 的支持功能,让这些隐藏着病毒的脚本在网络中广为传播。去年曾名燥一时的 I Love You 便是一个典型代表。因此,大家对于来历不明、尤其是邮件附件里的一些脚本文件还是应该保持戒备。
二.深入解析恶意代码的特征与发展趋势
不必要代码(Unwanted Code)是指没有作用却会带来危险的代码,一个最安全的定义是把所有不必要的代码都看作是恶意的,不必要代码比恶意代码具有更宽泛的含义,包括所有可能与某个组织安全策略相冲突的软件。
1.恶意代码的特征
恶意代码(Malicious code)或者叫恶意软件Malware(Malicious Software)具有如下共同特征:
(1) 恶意的目的
(2) 本身是程序
(3) 通过执行发生作用
有些恶作剧程序或者游戏程序不能看作是恶意代码。对滤过性病毒的特征进行讨论的文献很多,尽管它们数量很多,但是机理比较近似,在防病毒程序的防护范围之内,更值得注意的是非滤过性病毒。