C++破解CMOS密碼

   如果你忘記了CMOS密碼,那你將怎樣處理呢?我想,最原始的辦法就是放電。
這種方法固然可以達到清除CMOS密碼的目的,但在操作時需要打開機箱,而且CMOS設
置也將被一併清除,顯然太麻煩。另外還有一種比放電略簡單一點的方法,就是
使用DEBUG。其具體操作是:在DEBUG狀態提示符下,鍵入“O 70 11回車”和“O 71 10 回車”,
再按“Q”退出。這樣雖然不必打開機箱,但CMOS仍然需要重新設置,所以也不太簡便。
  下面我就給大家介紹一種最簡便且最有效的解密法。該方法是通過一個小程序來實現的,
程序的運行結果就是CMOS的密碼。這個程序在BC++ 3.1下的源代碼如下:


  #include<stdio.h>
  #include<conio.h>
  char passwd[9];
  char decode[9];
  void main()
  {
     unsigned int data;
     int count=0;
     asm{\t        /*獲取CMOS密碼的原始數據*/
          mov al,29
          out 0x70,al
   in al,0x71
   mov ah,al
   mov al,28
   out 0x70,al
   in al,0x71
   mov data,ax
        }
     while (data>0) {       /*將原始數據轉換爲有效數據*/
         if (data<0x80){
          passwd[count]=data;
          break;
         }
     else{
    unsigned char temp=data&0x3f;
    if(temp<=0x20)temp|=0x30;
    passwd[count++]=temp;
    data-=temp;
    data>>=2;
         }
   }
     for(int i=0;count>=0;i++)      /*將得到的CMOS密碼輸出*/
   decode
=passwd[count--];
      printf(“The CMOS's password:");
      textbackground(0x4);
      textcolor(0xff);
      cputs(decode);
   }


  有一點應該說明,通過這個程序求出的CMOS密碼不一定與你以前所設置的密碼一樣。
例如,若密碼設爲“586”,而它求出的卻是“80&”。不過,這並不要緊,你只要按它
求得的密碼輸入,就一定能成功地解開密碼。不信,就去試試吧。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章