风雨同行 2008-7-1 23:09
Windows Vista拒绝罢工系列3─忘记管理员密码?没问题!
现在,Windows Vista用户再也不需要借助ERD Commander、O&O BlueCon或者Offline NT Password & Registry Editor等“外援”的帮助,只需一张Windows Vista的安装光盘,就可以“自力更生”重设管理员帐户密码。
$qc5@9a6}\!Ik
H2OJ1x6yVW
1.一个工具包轻松搞定管理员密码 XS8?\o(cwKy(H
AY;o5L
E y/Rd
由于本文所涉及的原理和操作相对比较复杂,为了照顾初学者朋友,笔者特地制作了一个工具包,只有5KB大小([url=http://bbs.jpzj.net/attachment.php?aid=35557][i]请单击这里,下载工具包[/i][/url])。
_-ALB@ um;F&q,Mc*B
Z
R"t;aA }
(1) 首先确保您的Windows Vista安装在C盘,如果安装在别的分区,请不要使用该工具包,而直接查看本文的后面部分。:R
PeQ9@8f
(2) 请将本工具包解压缩到软盘,然后将这张软盘插入故障计算机。je&Z)p9[t#wK{u
(3) 利用Windows Vista安装光盘引导系统进入“系统恢复选项”,并单击其上的“命令提示符”,请参考[url=http://bbs.jpzj.net/thread-87093-1-1.html][i]Windows Vista拒绝罢工系列1─芝麻开门[/i][/url]。:n0eoe,`ch%m/L5J-}i
(4) 在命令提示符下运行“A:\StartMe”,如果命令结果没有报错,连续两次重启计算机到登录界面。
.}L.D
a[d*H'b~+Z
(5) 第二次启动到登录界面时,点击Test帐户名即可登录,然后就可以重设原来帐户的密码了。
$a {rw4N3^T[v
(6) 打开注册表编辑器,删除以下注册表子键即可: H$c.~|r6G
HKLM\SYSTEM\CurrentControlSet\Services\AddUser -pf }9b
~s5T/qMRf
#r6y(f&W)V*U
2.原理描述
_L.t8c6g9rz*?\?;n
"m+`'T'u`4n7ak
这个工具包里包含两个批处理文件和一个srvany.exe程序,作用如下:
luz0r*bk
• AddUser.bat批处理文件:目的是在Windows Vista系统里创建一个管理员帐户Test,而且密码是空。
wJ
O on-i;Yur
• StartMe.bat批处理文件:目的是把AddUser.bat文件安装为一个服务,该服务是以LocalSystem身份启动的,这样在开机登录之前,就已经执行AddUser.bat,以便新建Test帐户。d7n9^C[%J
• srvany.exe程序:取自Windows Server 2003 Resource Kit Tools工具包,可以在微软官方网站上自由下载。4|*s
[n"Vni(b
看到这里,相信很多朋友已经明白,原来这个方法取自笔者以前写过的一篇文章[url=http://blogs.itecn.net/blogs/ahpeng/archive/2005/07/01/372.aspx][i]另类方法破解管理员密码[/i][/url]。但是还是有区别的,因为Windows Vista系统不支持直接把批处理文件安装为服务,否则服务会启动失败。所以必须借助srvany.exe程序和SCM(服务控制管理器)打交道,才能确保成功。
:e w0FCG
AddUser.bat批处理文件的内容如下,这和[url=http://blogs.itecn.net/blogs/ahpeng/archive/2005/07/01/372.aspx][i]另类方法破解管理员密码[/i][/url]没有区别,此处不再赘述。 引用:[indent]net user test /addU*~P8w:T;tyr
net localgroup administrators test /add[/indent]
3@ g ^pV
V4k"H
StartMe.bat批处理文件的内容如下: 引用:[indent]copy a:\srvany.exe c:\Yd3x4j([#[D^{&U%m
copy a:\adduser.bat c:\
^*d%m(p
JVd"O
reg load HKLM\AddUser_SYSTEM C:\WINDOWS\system32\config\SYSTEM|4W!YF0M(i7gy d])Xs
c:\windows\system32\sc create AddUser Type= own Start= auto Binpath= C:\srvany.exe Obj= LocalSystem
3^)B2i2u i
K(g2@v
reg add HKLM\SYSTEM\CurrentControlSet\services\AddUser\Parameters /v Application /t REG_SZ /d c:\AddUser.batU(ejV`z
reg copy HKLM\SYSTEM\CurrentControlSet\services\AddUser HKLM\AddUser_SYSTEM\ControlSet001\services\AddUser /s /fexG|A:o-W
reg unload HKLM\AddUser_SYSTEM[/indent]+{+E$m`)^x"_2P
(1) 最上面的两行copy命令没有什么可说的,就是为了把srvany.exe和adduser.bat复制到C盘根目录下。
j&T
DN
`
4YwW
L+P,L&wW[
(2) 而 “reg load HKLM\AddUser_SYSTEM C:\WINDOWS\system32\config\SYSTEM”命令,其目的是为了把C:\WINDOWS\system32\config\SYSTEM配置单元文件加载到注册表的HKLM\AddUser_SYSTEM分支。&e(?aE8C9x
[b]提示[/b]2j:w5mP5}FL
为什么要加载C:\WINDOWS\system32\config\SYSTEM配置单元?%K t]#B2|
原来Windows XP安装光盘的“系统恢复选项”,实际上是一个Windows PE环境。该Windows PE在物理内存里划分出一个32MB的空间作为虚拟的内存磁盘(RamDisk),盘符是X:。该Windows PE加载的注册表,实际上对应于X:\WINDOWS\system32\config目录下的配置单元文件。这可以用Process Explorer来验证,只需查看SYSTEM进程的句柄,即可发现所打开的注册表配置单元位于内存磁盘(RamDisk),如图1所示。1wB0r/_/\:HWA{r
[img]http://blogs.itecn.net/photos/winvista/images/2828/original.aspx[/img]
PG'TxD3a0WR BB
"^(o7tG5S^6JT-F)QeP
所以,必须把Windows Vista所用的注册表配置单元加载进来,才能最终生效。如果Windows Vista安装在别的分区,则需要把“reg load”命令中的C:改成合适的盘符。
+h/k:x z F7I
O"@
dY @#FT8})K
(3) 对于这句命令“c:\windows\system32\sc create AddUser Type= own Start= auto Binpath= C:\srvany.exe Obj= LocalSystem”,其目的是借助系统自带的SC命令在系统中新建一个AddUser服务,其可执行文件指向srvany.exe文件,运行身份是LocalSystem。
+Ua(C!nx'A)r(LF
提示m#}?*r:Z%A*xA,i/{B
由于“系统恢复选项”的Windows PE环境,其Path环境变量并不包含Windows Vista的安装目录,所以必须提供SC命令所在的详细路径(此处假设Windows Vista安装在C盘,请根据实际情况修改该命令)。SC命令的实质是在HKLM\SYSTEM\CurrentControlSet\services下添加AddUser服务的子键。