精品主页 | 软件下载 | 系统下载 | 精品导航| 精彩图片 | 转帖工具 | 版主申请 | 影视下载

查看完整版本: Windows Vista拒绝罢工系列3─忘记管理员密码?没问题!

风雨同行 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

A Y;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 Pe Q9@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(服务控制管理器)打交道,才能确保成功。
:ew0FCG AddUser.bat批处理文件的内容如下,这和[url=http://blogs.itecn.net/blogs/ahpeng/archive/2005/07/01/372.aspx][i]另类方法破解管理员密码[/i][/url]没有区别,此处不再赘述。 引用:[indent]net user test /add U*~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 J Vd"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^)B2i2ui 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 /f exG|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'Tx D3a0WR BB
"^(o7tG5S^6JT-F)QeP 所以,必须把Windows Vista所用的注册表配置单元加载进来,才能最终生效。如果Windows Vista安装在别的分区,则需要把“reg load”命令中的C:改成合适的盘符。
+h/k:x zF7I 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。
+U a(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服务的子键。
o_/yOX:M zS/|p*l1j?
(4) “reg add HKLM\SYSTEM\CurrentControlSet\services\AddUser\Parameters /v Application /t REG_SZ /d c:\AddUser.bat”这个命令的作用是在服务AddUser的注册表子键下添加相应的参数,让SCM(服务控制器)知道实际上要启动c:\AddUser.bat批处理脚本文件。
u0S*t'E ` @pP 注意
OoUvJ7c^/` 以上两条命令对注册表的修改,实际上是作用在X:\WINDOWS\system32\config\SYSTEM配置单元文件上,由于该配置单元保存在内存虚拟磁盘上,而非真正保存在Windows Vista所用的配置单元文件。所以我们需要把注册表键值复制到C:\WINDOWS\system32\config\SYSTEM配置单元(现在已经加载到HKLM\AddUser_SYSTEM注册表分支)。
2n,o.vE!gdF:C
J,p3_YZ4P&{ r"p (5) “reg copy HKLM\SYSTEM\CurrentControlSet\services\AddUser HKLM\AddUser_SYSTEM\ControlSet001\services\AddUser /s /f”命令的作用就是为了复制AddUser的注册表键值到真正需要的地方。
F]uWUQ7~ m9pb(n o3N.E#B
(6) “reg unload HKLM\AddUser_SYSTEM”命令则是卸载C:\WINDOWS\system32\config\SYSTEM配置单元。
;y'{ F6\6?e0o
rG;jXw _ 运行StartMe.bat脚本后,系统就会自动添加一个AddUser服务,该服务会在登录之前在系统中创建一个Test管理员帐户,以便我们顺利地重设管理员密码。
J P s:y}#_6jlz:Y
MU]X&|4? 3.写在后面 (x K)[Co2C N

$e/b"jbi {"k 这个方法虽然简单,但是当初测试时,笔者却走了不少弯路,这里简单地加以总结: l*UVN:yj%@^
&{;T }q0P&c)m{g+^ v
(1) 为什么我们可以在“系统恢复选项”下为所欲为?
I.F5HWm~7M$Y 在Windows Vista下时间长了,习惯了UAC环境,每运行一个管理任务,都会习惯等待确认权限提升对话框。但是在“系统恢复选项”下,我们可以随意通过命令提示符启动大部分应用程序,包括记事本、注册表编辑器等,除了Windows Shell程序不能运行外,几乎绝大多数的应用程序和脚本都能直接顺利运行。这是为什么?
`@2c^1?2`%~)x 原来在“系统恢复选项”下,我们是以LocalSystem身份运行的,难怪可以至高无上的权限对系统进行配置!这里可以用“Whoami /all”命令验证一下,如下图所示。
G ?+R.wT0e [img]http://blogs.itecn.net/photos/winvista/images/2829/original.aspx[/img]
e fJ?5`)a1s#K st4a S_ `+j
(2) 为什么不直接运行net user和net localgroup命令?&v1c)p ~0u
看了前面部分后,您可能一直存在一个疑问,为什么不直接在命令提示符窗口运行net user和net localgroup命令,反正我们现在是LocalSystem权限,而非得绕那么大一个圈子,借助AddUser脚本在系统中添加一个服务,达到“曲线救国”的目的?g^"]3s(c?
原来正如前面所述,“系统恢复选项”的Windows PE环境,所加载的SAM配置单元文件位于X:\WINDOWS\system32\config目录下,而非C:\WINDOWS\system32\config目录下。所以net命令的结果保存在X:\WINDOWS\system32\config\SAM配置文件里,没有真正生效!
i1Jg}aZ^ 就算加载C:\WINDOWS\system32\config目录下的SAM配置单元,并且采用帐户克隆的方法复制注册表的F和V键值,还是无法生效。7K+?#c4u+p/s.wh

8Sw\w)^6JA _eG (3) 为什么不把X:\WINDOWS\system32\config\下的SAM文件直接复制到C:\WINDOWS\system32\config目录下?u [S#b#fQ{(o
这实际上类似于在Windows 2000/XP下把C:\WINDOWS\repair目录下的SAM副本复制到C:\WINDOWS\system32\config目录下。结果会具有两个空密码的帐户Administrator和Guest。
;n?|s/O"\Em8p:jN 然而这种方法并不推荐,因为通常并不能仅仅拷贝SAM配置单元文件,还必须同步拷贝SYSTEM、SOFTWARE等其他配置单元文件,这样会可能导致很多系统和软硬件配置信息丢失,损失更大。

风雨同行 2008-7-1 23:10

这样做其实就是为了在Windows Vista里新增一个服务,大家知道服务可以在系统登录之前运行,而且能够以System帐户身份运行。该服务可以运行一个我们定制的脚本,在系统登录之前就新建一个管理员帐户。
7yo5N#J9c]4d a0}(~pc(q8^l+A7H8UU
唯一麻烦的是Windows Vista自带的Windows PE 2.0,加载的是一个特殊版本的注册表(位于32MB的ramdisk分区,盘符为X:),所以必须挂载Vista的注册表配置单元,再作修改。!UcVC/j$X l
`.U h-C*]3N[Q'u^hG
提示 该PE.2.0对应于Windows Vista安装光盘\source目录下的boot.wim映像,实际上Vista安装时,就是利用这个映像版的PE加载、并还原操作系统映像(install.wim)。c!{;Z}eJXj:q

BHRn+JB 对于end user来说,不需要理解具体原理,可以直接下载我做好的一个压缩工具包,解压缩到软盘或者U盘,进入系统恢复界面后,直接运行一下里面的startme.bat脚本即可。A.O6jxD.X7H;n&X

DDA#`!p^s!RK 遗忘管理员密码是经常有的事情,这里提醒大家注意,如果加密EFS文件,一定要导出EFS加密证书(和私钥),因为一旦帐户密码被重设,就无法再访问加密文件。 o;VfPM }x

UfG%c6~?8G#i!_ 还有一点就是,如果启用了Bitlocker全卷加密,那么无法利用这种方法对管理员密码进行破解,BitLocker把所有的内容都加密了,包括SAM配置单元,所以彻底无法破解。这也是要特别注意的。
Of p.a R"q%] pl'BQ
j:n8UR,TC/i 该工具包的缺点是目前还只能针对Vista安装在C盘里的情况,我将会重新编写这个脚本,使得可以适合更复杂的环境。
页: [1]
查看完整版本: Windows Vista拒绝罢工系列3─忘记管理员密码?没问题!