Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Как узнать пароль AMI BIOS'а программно?


Автор: chipset 7.4.2005, 21:50
Код


#include <stdio.h>

unsigned char cmos(unsigned char addr)
{
 asm {
mov al,addr
out 070h,al
nop
nop
in al,071h
 }
 return _AL;
}

unsigned char code(unsigned char csum, unsigned char key)
{
 _BL = csum;
 _AL = key;
l2: asm {
test bl,0c3h
jp l1
stc
   }
l1: asm {
rcr bl,1
dec al
jne l2
   }
 return _BL;
}

void decode()
{
 unsigned char csum;
 char key;
 char addr;
 char c;

 printf("Current password is:  ");

 csum = cmos(0x37) & 0xf0;

 for(addr=0x38;addr<0x3e;addr++)
 {
   c = cmos(addr);
   if (c == 0) break;

   for(key=0x21;key<0x80;key++)
   {
     printf("\b%c",key);
     int k = key;
     if (k <= 0x7a && k >= 0x61) k-=0x20;
     if (c == code(csum,k)) break;
   }

   if (key == 0x80)
   {
     printf(" - error!\n");
     return;
   }

   printf(" ");
   csum = c;
 }
 printf("\n");
}

void main()
{
 decode();
}



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)