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

  综上所述,在DOS上运行DEBUG来破除UNIX管理员口令,这就是本文提出的解决SCOUNIX超级用户口令被忘记问题的新方案。 新方案的应用新方案已经提出,下面我们来看看它是如何应用于实践的。
----DA0500H表示第一个数据块地址。由于其它12个数据块地址均为0,所以可断定根目录在硬盘上只占了一个数据块。现在我们必须依据DA0500H计算出这个数据块存放在硬盘的第几柱面、第几磁头、第几扇区。计算公式如下:
  C=TRUNC(P/(H*S))
  C1=C0+C
  H1=TRUNC((P-C*H*S)/S)
  S1=P-C*H*S-H1*S+1
  ----其中:
  ----C1、H1、S1分别为数据块物理地址柱面号、磁头号、扇区号
  ----P等于数据块地址翻译成十进制数后再乘以2
  ----H为硬盘磁头数
  ----S为每磁头扇区数
  ----C0为根文件系统起始柱面
  ----C只是一个中间量
  ----将DA0500H代入上述公式,并根据H=64,S=32,C0=2,可算出C1=3,H1=29,S1=21。因此根目录在硬盘上的物理地址为:3柱面29头21扇。
  ----用app把它读出来(
  CX和DX的赋值应分别改为"0315"和"1D80")。
  ----读出后用"dump"命令查看,可以发现偏移1050H至105FH是/etc目录的i-node号和文件名,其中i-node号为22H,即34D。因为每个扇区有8个i-node,所以34号
  i-node必定在2柱面0头9扇。
  ----用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操作系统。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wzgdsp.html