200808310418windows2000/nt/xp管理員密碼丟失解決方法

經常被問即管理員密碼丟失怎麼辦?下邊就windows 2000/nt/xp系統下的解決方法作一個簡單的總結,當然並不全面。

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 Editorhttp://home.eunet.no/~pnordahl/ntpasswd/),
這個工具是離線修改註冊表文件sam來設置密碼的。
需要用他的映像文件製作啟動盤來引導,
進而訪問ntfs分區重新設置密碼;
雖然作者經常更新他的程序,
不過原作者還是會擔心  他直接操作sam文件的安全性,
可能有時會導致系統出錯。可能還有其他類似工具吧。

3。 還有一種想法就是用一個修改密碼的小程序
來替換系統啟動的必要程序,然後系統啟動時就會替換密碼,
隨後把被替換的程序在還原就行了。
當然首先你還是要能夠訪問系統分區,來替換隨系統啟動的程序。

替換系統啟動的必要程序的一種方法
是原作者寫的一個清除administrator密碼的小程序(CleanPwd),
所作的就是把administrator密碼清空。
使用方法如下:
(1)用法
1) 用雙系統或者啟動盤或者掛到別的系統上,
如果是NTFS分區其他系統或啟動盤要能讀寫NTFS分區,
把windows安裝目錄下的 system32\svchost.exe改名svchost.bak.exe備份,
把CleanPwd.exe拷貝成svchost.exe。

2) 啟動該系統,就把administrator的密碼清空了,可以直接登陸。

3) 把svchost.bak.exe 恢復就行了。
(如果使用替換的是svchost,最好再啟動rpc服務)

(2)為什麼選用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,
如果你知道其他服務會自動啟動,你也可以選擇它。
當然如果系統安裝了殺毒軟件的話,你替換殺毒軟件也可以,
因為一般殺毒軟件都會在系統啟動是啟動殺毒防火牆來殺毒的。

(3).其他
有這個想法是幾個月之前了,不過一直沒有寫這個程序:
( 程序運行會在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 =======================
[參考來源]
http://www.hacker.org.tw/?c=articles_show&articleid=135
回應
關鍵字
限時活動
目前建置中
贊助商連結

96.6.2日上線發表首篇於部落格
保佑女兒永遠健康幸福
真心善良菩薩守護我們

累積 | 今日
loading......





Powered by Xuite
廣告
全台氣象台






Re:[adidas gazelle 007],By adidas gazelle 007 於2017-09-16
Re:[zx flux turquoise],By zx flux turquoise 於2017-09-15
Re:[veste nike windrunne...],By veste nike windrunner 14 ans 於2017-09-14
Re:[nike roshe nm lsr],By nike roshe nm lsr 於2017-09-14
Re:[men''s superstar 80s...],By men''s superstar 80s leather (run dmc) 於2017-09-12
Re:[superstar finisher c...],By superstar finisher combinations 於2017-09-12
Re:[adidas dragon r 28],By adidas dragon r 28 於2017-09-11
Re:[soldes new balance h...],By soldes new balance homme 於2017-09-06
Re:[christian louboutin ...],By christian louboutin soldes 於2017-09-04
Re:[adidas superstar 2 j...],By adidas superstar 2 junior 於2017-09-03