Windows脚本组件与脚本保护全解析
1. Windows脚本组件(WSC)介绍
在脚本编程中,我们常常会使用到编程对象,特别是基于微软组件对象模型(COM)编写的对象或组件。当在脚本中创建COM类的实例时,会使用CreateObject语句,例如CreateObject("Scripting.FileSystemObject")会创建一个新的FileSystemObject。VBScript执行该命令时,会请求COM将Scripting.FileSystemObject加载到内存中。COM会在注册表中查找该类,其具有全局唯一标识符(GUID){0D43FE01 - F093 - 11CF - 8940 - 00A0C9054228},对应的进程内服务器(InprocServer32)是C:\Windows\System32\scrrun.dll。
创建新的WSC时,实际上是创建一个伪装成COM组件的脚本,Scrobj.dll作为WSC的进程内服务器辅助实现这一伪装。在脚本中创建WSC实例时,COM会加载Scrobj.dll,进而加载并执行实际的WSC脚本。因此,WSC就像是伪装成DLL的常规VBScript,任何使用DLL的编程语言(如Visual Basic、Delphi、VBScript、C++等)都可以使用WSC,因为WSC满足常规COM组件的所有要求。
1.1 WSC的XML格式
WSC是