新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 用DOS命令解除UNIX管理员密码

用DOS命令解除UNIX管理员密码

作者: 时间:2016-09-12 来源:网络 收藏

----用app读出它(CX和DX的赋值分别改为0209和0080)。

----用dump命令可看出偏移1040H至107FH正是/etc目录的i-node。我们把它的数据块也读出来。先计算第一个数据块的物理地址。将2D0700H代入公式,算出/etc第

一个数据块物理地址是3柱面50头27扇。

----用app读出它(CX和DX的赋值分别改为031B和3280)。

----用dump命令可看出偏移11A0H至11AFH是/etc目录下的passwd文件名。我们用enter命令把它改成zls,然后再运行app(AX的赋值应改为0301)。

----现在退出DEBUG命令。

----取出软盘,重启机器,引导UNIX操作系统。----按照引导顺序,UNIX显示出硬件配置信息后就该提问超级用户口令了,但就在此时它却突然发现/etc/passwd文件失踪了!(其实只是被改名为zls,但UNIX对此一无所知。)没有了这个文件,UNIX无法提问超级用户口令,于是它只好在屏幕上显示如下 :

信息并允许用户以系统管理员身份直接进入系统维护态:

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

#

----进入维护态后,当然就可以为所欲为了。但最好先设置一个新的超级用户口令。要想这样做,首先必须恢复passwd文件名。

#mv/etc/zls/etc/passwd

----然后,就可以用/bin/passwd命令设置新的超级用户口令了。

结束语

----在本文行将结束时,我们再来作一个小小的总结。

----传统方案有操作平台、操作工具和操作对象局限性。新方案则突破了这三大局限性。

----一、新方案突破了操作平台局限性。传统方案的操作平台必须是UNIX,而新方案则是DOS。DOS比UNIX普及得多,中国的绝大部分计算机用户对UNIX陌生,但对DOS却相当熟悉,使用起来也有亲切感。

----二、新方案突破了操作工具局限性。传统方案的操作工具必须是两张紧急启动软盘,而新方案仅使用一张DOS系统盘,其上只需拷贝一个DEBUG.EXE文件。紧急启动软盘只能专盘专用,DOS系统盘却不存在这个问题--用任何一台机器上的DOS制作出的系

统盘,可以用来解决任何一台机器上的UNIX超级用户口令被忘记的问题。至于用来访问物理硬盘的软件,当然更不是非DEBUG不可,任何软件--只要支持访问物理盘--均可。作者推荐使用Norton8.0软件包里的diskedit程序,对不懂汇编语言编程的人来说该程序无疑是一个最好的选择。

----三、新方案突破了操作对象局限性。传统方案的操作对象是文件系统管理下的文件,而新方案撇开了文件系统,直接在底层修改数据。

----最后需要说明的是,对于SCOOpenServerRelease5,因条件所限,作者还没有使用过,所以关于新方案在该版本上执行时步骤是否需要修改以及如何修改的问题,如果有机会,作者会加以适当的补充。

首先需要指出,由于文章篇幅和性质的限制,本文不可能将新方案实施过程中涉及到的所有知识以入门讲座的方式加以介绍。因此,在阅读本小节前,读者应具备下列基础:熟悉硬盘主引导扇区和UNIX分区及UNIX文件系统的构造(这对UNIX系统管理员来说不成问题)、了解中断13H入口参数含义、使用过DEBUG命令。一台COMPAQDESKPROXL/466服务器,主板内含PCISCSI-2控制器一个,上接富士通硬盘一只,该硬盘主要参数为:1041柱面,64头,32扇。硬盘上装有SCOUNIXSystemV/386Release3.2operatingsystemVersion4.2。现在假设其超级用户口令被忘记。首先,随便找一台安装了DOS的计算机,制作一张DOS系统盘,并在系统盘上拷贝一个DEBUG.EXE文件。

C:DOS>format/sa:

C:DOS>copydebug.exea:

----然后将该盘插入COMPAQ服务器A驱,开机启动DOS操作系统,执行DEBUG命令。

A:>debug

现在我们就编写一段汇编语言程序(以下简称app),来读出硬盘0柱0头1扇区的内容。该扇区存放的是主引导记录,读出它是为了确定SCOUNIX分区的起始位置。app是调用中断13H实现的,以后我们还要反复用到它,当然入口参数将随所读内容物理地址的变化而变化。

-a

2039:0100MOVAX,0201

2039:0103MOVBX,1000

2039:0106MOVCX,0001

2039:0109MOVDX,0080

2039:010CINT13

2039:010EINT20

2039:0110

-g

Programterminatednormally

现在我们可以用dump命令查看被读到内存里的扇区内容。从偏移11BEH处开始是分区表,其中类型标志字节为63H的分区是SCOUNIX分区。该分区起始于1柱面0磁头1扇。

下面,读出UNIX根文件系统i-node表的第一个扇区,以确定根目录的物理位置。

根据UNIX分区起始位置可知根文件系统始于2柱0头1扇。并且,由于2柱0头1扇是引导块,2扇是超级块,3、4扇为间隔,所以i-node表必定始于第5扇。

我们用app读出它(CX的赋值应改为0205)。

读出后用dump命令查看偏移1040H至107FH的64个字节,这就是2号i-node,即根目录的i-node。

----下面我们就根据i-node计算根目录在硬盘上的物理地址。

----我们从偏移1040H看起:

----ED41H表示文件类型与存取权限为drwxr-xr-x;

----1000H表示文件连结数为16;

----0000H表示文件属主ID为0;

----0200H表示文件组ID为2;

----80020000H表示文件字节数为640个;


上一页 1 2 下一页

关键词:

评论


相关推荐

技术专区

关闭