DOS解决Unix操作系统问题

系统 其他OS
文章中讲解了如何解决在Unix操作系统中忘记了管理员口令的问题,利用在DOS上运行DEBUG来破除Unix操作系统管理员口令。

也许在Unix操作系统中,你会忘记了管理员口令,虽然这是不可原谅的过失,但是还是不可避免的问题,今天。我们就来教大家一个解决这个问题的方法,比较一些传统的方法更加适用。

因为虽然其它操作系统识别不了Unix操作系统的文件系统格式,但在任何操作系统上,我们都可以访问物理硬盘;而只要是带有访问物理硬盘功能的软件,都可以成为我们的操作工具。

大家最熟悉的操作系统无疑是DOS。可以访问物理硬盘的软件很多,但最易寻觅的莫过DEBUG.EXE。所谓最易寻觅,是因为DEBUG是DOS本身的一条外部命令,可以说只要是在安装了DOS的机器上都可以找到它。

对DEBUG略知一二的人可能会指出该命令并没有提供访问物理硬盘的选项,但请不要忘记 DEBUG是DOS提供给用户的一个汇编语言调试程序,我们完全可以利用它编写、调试和执行一个汇编小程序去访问物理硬盘。应该说,这对一个能够取得系统管理员身份的人并不困难。

综上所述,在DOS上运行DEBUG来破除Unix操作系统管理员口令,这就是本文提出的解决SCO Unix操作系统超级用户口令被忘记问题的新方案。

新方案的应用

新方案已经提出,下面我们来看看它是如何应用于实践的。我们假设一台装有SCO OpenServer Release 5的超级用户口令被忘记。

首先,随便找一台安装了DOS的计算机,制作一张DOS系统盘,并在系统盘上拷贝一个DEBUG.EXE文件。

 

  1. COS>format/s a:  
  2. COS>copy debug.exe a: 

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

A:>debug

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

 

  1. -a  
  2. 2039:0100 MOV AX,0201  
  3. 2039:0103 MOV BX,1000  
  4. 2039:0106 MOV CX,0001  
  5. 2039:0109 MOV DX,0080  
  6. 2039:010C INT 13  
  7. 2039:010E INT 20  
  8. 2039:0110  
  9. -g  
  10.  
  11. Program terminated normally  
  12. -d 1180  
  13. 2039:1180 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................  
  14. 2039:1190 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................  
  15. 2039:11A0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................  
  16. 2039:11B0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................  
  17. 2039:11C0 01 6E 06 3F 20 96 00 70-03 00 00 48 01 00 00 00 .n.? ..p...H....  
  18. 2039:11D0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................  
  19. 2039:11E0 01 97 05 3F E0 FF 00 B8-04 00 00 C8 1B 00 80 00 ..c?............  
  20. 2039:11F0 01 01 63 3F 20 6D 00 08-00 00 00 68 03 00 55 AA ..c? m.....h..U.  

 

从分区表中可看出硬盘上共有三个分区,其中类型标志字节为 63H的分区是SCO Unix操作系统分区。该分区起始于1柱面0磁头1扇。

下面,读出Unix操作系统根文件系统i-node表的***个扇区,以确定根目录的位置。

先读 i-node 表。由于Unix操作系统分区始于1柱0头1扇,所以根文件系统必定始于2柱0头1扇。并且,由于2柱0头1扇是引导块,2扇是专用块,3、4扇为间隔,所以 i-node 表必定始于第5扇。

 

  1. -a  
  2. 2039:0100 MOV AX,0201  
  3. 2039:0103 MOV BX,1000  
  4. 2039:0106 MOV CX,0205  
  5. 2039:0109 MOV DX,0080  
  6. 2039:010C INT 13  
  7. 2039:010E INT 20  
  8. 2039:0110  
  9. -g  
  10. Program terminated normally  
  11. -d 1000  
  12. 2039:1000 00 80 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................  
  13. 2039:1010 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................  
  14. 2039:1020 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................  
  15. 2039:1030 00 00 00 00 0A 4B 32 33-0A 4B 32 33 0A 4B 32 33 .....K23.K23.K23  
  16. 2039:1040 ED 41 10 00 00 00 02 00-80 02 00 00 DA 05 00 00 .A..............  
  17. 2039:1050 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................  
  18. 2039:1060 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................  
  19. 2039:1070 00 00 00 00 E1 83 C5 35-46 82 C5 35 46 82 C5 35 .......5F..5F..5 

现在我们看到的是 i-node 表的前两项。从偏移1040H至107FH的64个字节是2号i-node ,即根目录的 i-node 。

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

我们从偏移1040H看起:ED41H表示文件类型与存取权限为“drwxr-xr-x”;

 

  1. 1000H表示文件连结数为16;  
  2. 0000H表示文件属主ID为 0;  
  3. 0200H表示文件组ID为 2;  
  4. 80020000H表示文件字节数为 640个; 

DA0500H表示***个数据块地址。由于其它12个数据块地址均为 0,所以可断定根目录在硬盘上只占了一个数据块。现在我们必须依据DA0500H计算出这个数据块存放在硬盘的第几柱面、第几磁头、第几扇区。如何计算?作者专门总结了一套公式:

  1. C = TRUNC ( P/(H*S) )  
  2. C1 = C0 + C  
  3. H1 = TRUNC( (P-C*H*S)/S )  
  4. S1 = P - C*H*S - H1*S + 1 


其中:

C1、H1、S1分别为数据块物理地址柱面号、磁头号、扇区号
P等于数据块地址翻译成十进制数后再乘以 2
H为硬盘磁头数
S为每磁头扇区数
C0为根文

这样,我们就完成了在Unix操作系统中忘记管理员密码的解决方法的解析。希望大家能够好好的学习。

【编辑推荐】

  1. 解决掉你不要的Unix操作系统进程
  2. 利用引用管理Unix操作系统
  3. Unix操作系统元字符管理
  4. Unix操作系统进程管理
  5. Unix操作系统进程关闭方法
责任编辑:小霞
相关推荐

2010-04-09 16:45:42

Unix操作系统

2010-04-19 15:18:45

Unix操作系统

2010-05-05 10:25:24

Unix操作系统

2010-04-16 17:38:25

2010-04-30 17:21:50

Unix操作系统

2010-04-29 15:46:47

Unix操作系统

2010-04-20 14:10:11

Unix操作系统

2010-04-08 18:25:03

Unix操作系统

2010-04-08 17:56:42

Unix操作系统

2010-04-07 10:42:41

Unix操作系统

2010-04-20 11:08:33

Unix操作系统

2010-04-20 12:40:23

Unix操作系统

2010-04-16 09:57:25

Unix操作系统

2010-04-14 15:58:25

Unix操作系统

2010-04-09 14:20:59

Unix操作系统

2010-04-15 18:46:53

Unix操作系统

2010-04-14 12:46:31

2010-04-19 13:54:43

Unix操作系统

2010-04-07 11:31:25

Unix操作系统

2010-04-15 18:06:08

Unix操作系统
点赞
收藏

51CTO技术栈公众号