荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: enjoy (整理精华区ing~~~), 信区: Newsoftware
标  题: [合集]win2000系统管理员密码忘了怎么办?[转载]
发信站: 荔园晨风BBS站 (Thu Feb 26 23:21:41 2004), 站内信件

IFA (永远爱小秦!) 于Thu Feb 26 19:56:24 2004提到:



duke (为6级努力) 于Thu Feb 26 20:02:22 2004提到:




MarchRain (等風的雲|越堕落,越快乐) 于Thu Feb 26 20:04:52 2004提到:

 方法1:ERD Commander 2003



duke (为6级努力) 于Thu Feb 26 20:07:32 2004提到:

方法2 Windows XP-2000-NT Key


MarchRain (等風的雲|越堕落,越快乐) 于Thu Feb 26 20:08:19 2004提到:

 这是最简单的了

再给你看些:
1:清除sam文件:
   WinNT系列的系统账户信息是存在%systemroot%\system32\config\sam这个注册
表文件里的。如果系统里没有重要的账户,或者账户比较少,用删除
%systemroot%\system32\config\sam的方法是比较简单的,不过因为系统会还原为
只有administrator(密码为空)和guest二个账户,所以有些程序因为它们所依赖
的账户丢失了,如iis、vmware就不能启动了。
   原来听说这种方法只能适用于nt workstation系列(2kpro),不能用于
server,我在2000professional和2000 advanced server上试验都是成功的。不知
道为什么会有上述说法,可能是活动目录ad下不行吧。
   当然首先你要能够访问系统分区,来把sam文件改名或者删除。如果是fat32、
fat分区,使用98启动盘就行了。如果是ntfs分区,可以使用winternal的ntfs for
 dos、ntfs for 98或者是支持ntfs的启动光盘,再或者挂到其他win2000、linux
等机器上,再再或者重新安装一个新的win2000。

2:专用工具:
   windows管理员密码丢失还有一个解决方法是使用Petter Nordahl-Hagen的
The Offline NT Password Editor(http://home.eunet.
no/~pnordahl/ntpasswd/),这个工具是离线修改注册表文件sam来设置密码的。需
要用他的映像文件制作启动盘来引导,进而访问ntfs分区重新设置密码;虽然作者
经常更新他的程序,不过我还是会担心他直接操作sam文件的安全性,可能有时会
导致系统出错。可能还有其他类似工具吧,恕我无知。

3:还有一种想法就是用一个修改密码的小程序来替换系统启动的必要程序,然后
系统启动时就会替换密码,随后把被替换的程序在还原就行了。当然首先你还是要
能够访问系统分区,来替换随系统启动的程序。

替换系统启动的必要程序的一种方法是我写的一个清除administrator密码的小程
序(CleanPwd:http://www.BingleSite.net/myprog/CleanPwd/CleanPwd.rar),他
所作的就是把administrator密码清空。使用方法如下:
1):用双系统或者启动盘或者挂到别的系统上,如果是NTFS分区其他系统或启动盘
要能读写NTFS分区,把windows安装目录下的system32\svchost.exe改名svchost.
bak.exe备份,把CleanPwd.exe拷贝成svchost.exe。

2):启动该系统,就把administrator的密码清空了,可以直接登陆。

3):把svchost.bak.exe 恢复就行了(如果使用替换的是svchost,最好再启动
rpc服务)。为什么选用svchost.exe而不是其他程序,因为每个windows2000系统
都有这几个进程,System(kernel Executive and kernel)、smss(session
manager)、csrss(win32 subsystem)、winlogon(logon process)、
services(Service control manager)、lsass(local security authentication
server ) 如果任何一个被杀掉或者出错,系统将重新启动。不过在lsass启动之前
你不能修改密码,所以不能选用这几个程序。
另外系统中一般还有以下一些程序:svchost.exe(Remote Procedure Call
(RPC) 还有其他一些服务)、WBEM\WinMgmt.exe(Windows Management
Instrumentation)、mstask.exe(Task Scheduler)、regsvc.exe(Remote Registry
 Service) 可能还有其他服务程序,你可能禁止了除RPC之外的其他服务,但不会
禁止rpc,否则系统工作就不正常了。所以我选择了svchost,如果你知道其他服务
会自动启动,你也可以选择它。当然如果系统安装了杀毒软件的话,你替换杀毒软
件也可以,因为一般杀毒软件都会在系统启动是启动杀毒防火墙来杀毒的。

4):其他:有这个想法是几个月之前了,不过一直没有写这个程序:( 程序运行会
在c:\CleanPwd.txt记一个简单的日志,我也附了源码,你可以任意修改它以满足
自己的要求,比如添加一个用户而不是修改管理员的密码(或者你把管理员改名了
)。

4:我还在一个网站上看到这样一个方法:就是把%systemroot%\system32\logon.
scr替换为cmd.exe或者explorer.exe,然后在系统登陆处等待,过一会,系统就会
去运行logon.scr这个屏保,因为你替换了这个屏保文件,所以实际上运行的是
cmd.exe或者explorer.exe,并且是localsystem权限,于是你可以随便了,最简单
的就是在cmd.exe里运行net user administrator "",成功后管理员密码也被清空
了,关闭cmd或者explorer就可以用空口令登陆了。其实这种方法和上边的那种思
路是一致的。

================= code begin =======================
#include
#include
#include
#include
#include
#pragma comment(lib, "Netapi32.lib")

#define LOF_FILE  "c:\\cleanpwd.txt"

DWORD SetUserPwd(char *user, char *pass);

void banner(FILE *fp)
{
  if(NULL == fp)return;

  fprintf(fp, "Clean administrator's password tool 1a. for lost
password.\n");
  fprintf(fp, "   by bingle@email.com.cn\n");
  fprintf(fp, "Website: www.BingleSite.net\n");
}

int main(int argc, char *argv[])
{
  banner(stderr);

  FILE *fp = fopen(LOF_FILE, "a");
  if(fp)
  {
    fprintf(stderr, "Log in file %s\n", LOF_FILE);
    banner(fp);
  }

  if(!fp) fp = stderr;

  char buff[256];
  fprintf(fp, "%s: clean administrator's password ", _strtime(buff));
  DWORD n = SetUserPwd("administrator", "");
  if(NERR_Success == n) fprintf(fp, "ok.\n");
  else fprintf(fp, "failed, error:%d\n", n);

  fclose(fp);

  return -1;
}

DWORD SetUserPwd(char *user, char *pass)
{
  wchar_t wuser[PWLEN], wpass[PWLEN];
  USER_INFO_1003 ui;

  mbstowcs(wuser, user, strlen(user)+1);
  mbstowcs(wpass, pass, strlen(pass)+1);
  ui.usri1003_password = wpass;

  return NetUserSetInfo(NULL, wuser, 1003, (LPBYTE)&ui, NULL);
}

================= code end =======================



MarchRain (等風的雲|越堕落,越快乐) 于Thu Feb 26 20:09:08 2004提到:

 这个也行。
 我还记得有个办法是创建一个新用户,然后简单地就可以把他提升为管理员地。



duke (为6级努力) 于Thu Feb 26 20:10:37 2004提到:

我记得带命令行的安全模式也可以


yeep (每天都痛苦得活着) 于Thu Feb 26 20:10:59 2004提到:

要在Administrator下才能建得吧


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店