我认为只能通过汇编调用修改CMOS的设定才能解决这个问题

解决方案 »

  1.   

    u r searching common solution,or for one/some special machine?
      

  2.   

     for commom solution to all computers.Thanks!这在国外已有软件实现了,我就是不清楚怎么实现。有劳各位了,多谢^_^
     
      

  3.   

    通过汇编调用修改CMOS的设定, 也还是可以被手动修改回来的,不能达到效果
      

  4.   

    i agree with Firing_Sky
      

  5.   

    可用70h,71h端口使cmos ram的
    10h=00h;A:,B;驱去掉
    2eh=01h--20h低位checksum
    2fh=01h--20h高位checksum
      

  6.   

    修该0扇区的分区标志,形成循环分区表就可,可DOS重软盘无法启动,不过要重写主引导
    扇区的代码,把正确的代码放入0扇区后的扇区中,在系统启动时如果是硬盘,就回读入自己写的主引导代码,主引导代码只须将元来正确的带吗读到0000:7c00执行就可。
    软盘启动时,由于在读硬盘分区表时出现死循环,而导致无发启动。我曾经编写过此种程序,用的是汇编语言。如果该了INT13,就更病毒差不多了。
      另: KV300 L++的硬盘锁就是次原理。
      

  7.   

    原理是这样的:
      硬盘的主引导扇区为物理0头0扇区,512字节,在偏离1BE处为硬盘逻辑分区标志,
    是一个链表机构,操作系统就是根据它来获知有几个逻辑盘的。如果将最后的逻辑盘的链接指向第一个,DOS在获取逻辑盘标志时就回死循环。一般将1BE处填入80 01 02 05 02 ,2BE处填入 00 01 02 05 02(此处数据我印象中好象是这样的) 既可形成软盘不能启动,造成硬盘假死。
     
      

  8.   

    谢谢朋友们的真诚回答,谢谢gypb,我找到了问题的答案,mainroad不胜感激。