chipset |
Дата 7.4.2005, 21:50 (ссылка)
  |   (нет голосов)
Загрузка ...
|
|
|
Эксперт
   
Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US
Репутация: 27 Всего: 164
|
Код |
#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(); }
|
--------------------
Цитата(Jimi Hendrix) | Well, I stand up next to a mountain And I chop it down with the edge of my hand |
|
|
|
|