用DOS命令解除UNIX管理員密碼
----用app讀出它(CX和DX的賦值分別改為0209和0080)。
----用dump命令可看出偏移1040H至107FH正是/etc目錄的i-node。我們把它的數(shù)據(jù)塊也讀出來(lái)。先計(jì)算第一個(gè)數(shù)據(jù)塊的物理地址。將2D0700H代入公式,算出/etc第
一個(gè)數(shù)據(jù)塊物理地址是3柱面50頭27扇。
----用app讀出它(CX和DX的賦值分別改為031B和3280)。
----用dump命令可看出偏移11A0H至11AFH是/etc目錄下的passwd文件名。我們用enter命令把它改成zls,然后再運(yùn)行app(AX的賦值應(yīng)改為0301)。
----現(xiàn)在退出DEBUG命令。
----取出軟盤(pán),重啟機(jī)器,引導(dǎo)UNIX操作系統(tǒng)。----按照引導(dǎo)順序,UNIX顯示出硬件配置信息后就該提問(wèn)超級(jí)用戶口令了,但就在此時(shí)它卻突然發(fā)現(xiàn)/etc/passwd文件失蹤了!(其實(shí)只是被改名為zls,但UNIX對(duì)此一無(wú)所知。)沒(méi)有了這個(gè)文件,UNIX無(wú)法提問(wèn)超級(jí)用戶口令,于是它只好在屏幕上顯示如下 :
信息并允許用戶以系統(tǒng)管理員身份直接進(jìn)入系統(tǒng)維護(hù)態(tài):
su:Unknownid:root
/etc/tcbck:file/etc/passwd
ismissingorzerolength
/etc/tcbck:eitherslash(/)ismissingfrom
/etc/auth/system/filesortherearemalformedentries
in/etc/passwdor/etc/group
/etc/smmck:restoremissingfiles
frombackupordistribution.
INIT:SINGLEUSERMODE
****PASSWORDFILEMISSING!****
EnteringSystemMaintenanceMode
#
----進(jìn)入維護(hù)態(tài)后,當(dāng)然就可以為所欲為了。但最好先設(shè)置一個(gè)新的超級(jí)用戶口令。要想這樣做,首先必須恢復(fù)passwd文件名。
#mv/etc/zls/etc/passwd
----然后,就可以用/bin/passwd命令設(shè)置新的超級(jí)用戶口令了。
結(jié)束語(yǔ)
----在本文行將結(jié)束時(shí),我們?cè)賮?lái)作一個(gè)小小的總結(jié)。
----傳統(tǒng)方案有操作平臺(tái)、操作工具和操作對(duì)象局限性。新方案則突破了這三大局限性。
----一、新方案突破了操作平臺(tái)局限性。傳統(tǒng)方案的操作平臺(tái)必須是UNIX,而新方案則是DOS。DOS比UNIX普及得多,中國(guó)的絕大部分計(jì)算機(jī)用戶對(duì)UNIX陌生,但對(duì)DOS卻相當(dāng)熟悉,使用起來(lái)也有親切感。
----二、新方案突破了操作工具局限性。傳統(tǒng)方案的操作工具必須是兩張緊急啟動(dòng)軟盤(pán),而新方案僅使用一張DOS系統(tǒng)盤(pán),其上只需拷貝一個(gè)DEBUG.EXE文件。緊急啟動(dòng)軟盤(pán)只能專盤(pán)專用,DOS系統(tǒng)盤(pán)卻不存在這個(gè)問(wèn)題--用任何一臺(tái)機(jī)器上的DOS制作出的系
統(tǒng)盤(pán),可以用來(lái)解決任何一臺(tái)機(jī)器上的UNIX超級(jí)用戶口令被忘記的問(wèn)題。至于用來(lái)訪問(wèn)物理硬盤(pán)的軟件,當(dāng)然更不是非DEBUG不可,任何軟件--只要支持訪問(wèn)物理盤(pán)--均可。作者推薦使用Norton8.0軟件包里的diskedit程序,對(duì)不懂匯編語(yǔ)言編程的人來(lái)說(shuō)該程序無(wú)疑是一個(gè)最好的選擇。
----三、新方案突破了操作對(duì)象局限性。傳統(tǒng)方案的操作對(duì)象是文件系統(tǒng)管理下的文件,而新方案撇開(kāi)了文件系統(tǒng),直接在底層修改數(shù)據(jù)。
----最后需要說(shuō)明的是,對(duì)于SCOOpenServerRelease5,因條件所限,作者還沒(méi)有使用過(guò),所以關(guān)于新方案在該版本上執(zhí)行時(shí)步驟是否需要修改以及如何修改的問(wèn)題,如果有機(jī)會(huì),作者會(huì)加以適當(dāng)?shù)难a(bǔ)充。
首先需要指出,由于文章篇幅和性質(zhì)的限制,本文不可能將新方案實(shí)施過(guò)程中涉及到的所有知識(shí)以入門(mén)講座的方式加以介紹。因此,在閱讀本小節(jié)前,讀者應(yīng)具備下列基礎(chǔ):熟悉硬盤(pán)主引導(dǎo)扇區(qū)和UNIX分區(qū)及UNIX文件系統(tǒng)的構(gòu)造(這對(duì)UNIX系統(tǒng)管理員來(lái)說(shuō)不成問(wèn)題)、了解中斷13H入口參數(shù)含義、使用過(guò)DEBUG命令。一臺(tái)COMPAQDESKPROXL/466服務(wù)器,主板內(nèi)含PCISCSI-2控制器一個(gè),上接富士通硬盤(pán)一只,該硬盤(pán)主要參數(shù)為:1041柱面,64頭,32扇。硬盤(pán)上裝有SCOUNIXSystemV/386Release3.2operatingsystemVersion4.2?,F(xiàn)在假設(shè)其超級(jí)用戶口令被忘記。首先,隨便找一臺(tái)安裝了DOS的計(jì)算機(jī),制作一張DOS系統(tǒng)盤(pán),并在系統(tǒng)盤(pán)上拷貝一個(gè)DEBUG.EXE文件。
C:DOS>format/sa:
C:DOS>copydebug.exea:
----然后將該盤(pán)插入COMPAQ服務(wù)器A驅(qū),開(kāi)機(jī)啟動(dòng)DOS操作系統(tǒng),執(zhí)行DEBUG命令。
A:>debug
現(xiàn)在我們就編寫(xiě)一段匯編語(yǔ)言程序(以下簡(jiǎn)稱app),來(lái)讀出硬盤(pán)0柱0頭1扇區(qū)的內(nèi)容。該扇區(qū)存放的是主引導(dǎo)記錄,讀出它是為了確定SCOUNIX分區(qū)的起始位置。app是調(diào)用中斷13H實(shí)現(xiàn)的,以后我們還要反復(fù)用到它,當(dāng)然入口參數(shù)將隨所讀內(nèi)容物理地址的變化而變化。
-a
2039:0100MOVAX,0201
2039:0103MOVBX,1000
2039:0106MOVCX,0001
2039:0109MOVDX,0080
2039:010CINT13
2039:010EINT20
2039:0110
-g
Programterminatednormally
現(xiàn)在我們可以用dump命令查看被讀到內(nèi)存里的扇區(qū)內(nèi)容。從偏移11BEH處開(kāi)始是分區(qū)表,其中類型標(biāo)志字節(jié)為63H的分區(qū)是SCOUNIX分區(qū)。該分區(qū)起始于1柱面0磁頭1扇。
下面,讀出UNIX根文件系統(tǒng)i-node表的第一個(gè)扇區(qū),以確定根目錄的物理位置。
根據(jù)UNIX分區(qū)起始位置可知根文件系統(tǒng)始于2柱0頭1扇。并且,由于2柱0頭1扇是引導(dǎo)塊,2扇是超級(jí)塊,3、4扇為間隔,所以i-node表必定始于第5扇。
我們用app讀出它(CX的賦值應(yīng)改為0205)。
讀出后用dump命令查看偏移1040H至107FH的64個(gè)字節(jié),這就是2號(hào)i-node,即根目錄的i-node。
----下面我們就根據(jù)i-node計(jì)算根目錄在硬盤(pán)上的物理地址。
----我們從偏移1040H看起:
----ED41H表示文件類型與存取權(quán)限為drwxr-xr-x;
----1000H表示文件連結(jié)數(shù)為16;
----0000H表示文件屬主ID為0;
----0200H表示文件組ID為2;
----80020000H表示文件字節(jié)數(shù)為640個(gè);
評(píng)論