老文章档案 · 2003 年

浅析Award BIOS密码的破解

破解教程 · 算法分析 · 2003-06-09 · 作者:yuky 人气: · 出处:赢政天下收集整理)

Award BIOS版本有很多,有些有通用密码,但加密算法几乎没变,C语言算法描述

为:

int code(char str[8])

{

short i=0,ren;

int bin;

bin=str[i++];

while(str[i])

{

bin=bin<<2;

ren=str[i++];

bin+=ren;

}

return bin;

}

是将输入的字符左移两位加下一个字符,直到最后扩充到一个字,Superior

Password存放在BIOS的0x1c或0x3a处,User Password存放到0x63处,不同的版本可

能会不同。从加密算法看是有损加密,无法从密文反推得出密码,我用了一种方法。

还有很多其他的方法,比如穷举法,也很容易,可以分别在数字、小写字母、大写字

母范围中穷举。

我的方法是(不要看我,我可想不出来):密码长不超过8位,通过近位循环左移两

位,可表示为4a-164k+k,其中a为密码,k=0-3,用数学式表示为:(...((4a7-

65535k7+a6)4-65535k6+a5)...)4-65535k1+a0=w其中ai 为密码,ki=0-3,w为密

字,考虑到前5位密码的循环左移等于算术左移,即k7..k4=0,所以又可简化为:

47a7+46a6+...+a0=w+65535(42k3+4k2+k1)

式中42k3+4k2+k1,记为k,则k只有0-41共42个可能取值,要破密码,无非是求ai在

32-126之间的整数解,下面给出我的程序:

unsigned char *crack(char f)

{

char i=0,j=0,k=1;

unsigned int p,s=0,a=1,t;

unsigned char *b;

p=getpass1(f); 取出密字

do

{

s+=a;

t=floor(p/s);

i++;

a*=4;

}

while(t<32||t>126);

b=malloc((unsigned char*)i);

b[0]=t;

for(i=i-1;i>0;i--)

{

p-=b[j++]*pow(4,i);

s-=pow(4,i);

b[k++]=floor(p/s);

}

b[k]=0;

return(b);b即为密码

}

整个过程就是这样,如果有错请告诉我。详细的程序可到晓光之家下载。

还有程序只有在进入操作系统后才能运行,如果密码设的是System方式,则进不到系

统,只好放电了:(..

我有一个想法,就是制作一个模拟键盘的装置(可控制键盘也行),可以向键盘接口

(串口、PS/2)发送ASCII码,只要编一个小程序,让它不断的发送数字和回车,用穷

举法击破它,可破解System的密码。据我所知,用硬件破密码的还不多,现在我正在

学习单片机,鄙人才疏学浅,不知能否做到,哪位有高招不妨交流一下。

2000.11.20 于太原

源程序:

#include <math.h>

#include <conio.h>

#define ON 0

#define OFF 1

void change(unsigned char x,unsigned char y)

{

outportb(0x70,x);

outportb(0x71,y);

}

unsigned int sum()

{

int i;

unsigned int s=0;

for(i=0x10;i<=0x2d;i++)

{

outportb(0x70,i);

s+=inportb(0x71);

}

return(s);

}

void chsum()

{

unsigned int s;

s=sum();

change(0x2e,s>>8);

change(0x2f,s<<8>>8);

}

void clear()

{

unsigned char a;

outportb(0x70,0x11);

a=inportb(0x71)-0xc0;

change(0x11,0xc0);

chsum();

outportb(0x70,0x62);

if(inportb(0x71)==0xff)

{

outportb(0x71,0xff-a);

outportb(0x70,0x7b);

a=inportb(0x71)-a;

change(0x7b,a);

}

}

void display()

{

int i,j=0;

printf("Your Bios Mem at 0x10--0x7f:\n");

for(i=0x10;i<=0x7f;i++)

{

outportb(0x70,i);

printf("%4x",inportb(0x71));

j++;

if(j%16==0) printf("\n");

}

}

int code(char str[8])

{short i=0,ren;

int bin;

bin=str[i++];

while(str[i])

{

bin=bin<<2;

ren=str[i++];

bin+=ren;

}

return bin;

}

void chpass(char str[8])

{

change(0x1c,code(str)%0x100);

change(0x1d,code(str)/0x100);

chsum();

}

unsigned int getpass1(char i)

{

unsigned int a,b,p;

unsigned char x;

if(i==0) x=0x1c;

if(i==1) x=0x63;

outportb(0x70,x);

a=inportb(0x71);

outportb(0x70,x+1);

b=inportb(0x71);

p=(b<<8)+a;

return(p);

}

unsigned char *crack(char f)

{

char i=0,j=0,k=1;

unsigned int p,s=0,a=1,t;

unsigned char *b;

p=getpass1(f);

do

{

s+=a;

t=floor(p/s);

i++;

a*=4;

}

while(t<32||t>126);

b[0]=t;

for(i=i-1;i>0;i--)

{

p-=b[j++]*pow(4,i);

s-=pow(4,i);

b[k++]=floor(p/s);

}

b[k]=0;

return(b);

}

main()

{

unsigned char *p;

clrscr();

textmode(3);

printf("Award Bios Password Crack v2.0\nWritten By Yuky (Add:97091B2,NCIT)\n");

display();

p=crack(0);

printf("Your BIOS Superviosr Password:");

textcolor(RED+BLINK);

cprintf("%s\n",p);

printf("\n");

printf("Your BIOS User Password:");

textcolor(GREEN+BLINK);

cprintf("%s",crack(1));

}

(出处:赢政天下收集整理)

相关文章:

·ASProtect的加密算法初步分析

·MD5算法研究

·Active Ebook Compiler的注册算法

·语音界面2.0算法分析及注册机源码!

·简单算法——小护士 V1.2

·侠客系统修改器1.21破解手记--算法分析

·中文拨号上网计时计费器 V4.12注册算法分析

·加密算法之RSA算法

·加密算法之DES算法

·加密算法之ElGamal算法

相关软件:

·胜新出纳-支票打印软件 V4.0X 的注册码算法

·胜新现代办公百宝箱 V5.01 的注册码算法

·胜新信函宝典-信封打印软件 V2.02 注册码的算法

·胜新通用企业计划管理系统的注册码算法

·共享软件加密算法库 V3.2

·操作系统内存分配银行家算法模拟系统 XP

→ 特别推荐

→ 热点TOP10

我为人人《《==》》人人为我

关于我们 |

帮助(?)

| 广告服务 |

版权声明 |

商业合作 |

发展历程 |

加盟我们 |

联系我们

Copyright © 1999-2003

winzheng.com All Rights Reserved.

繁体版:由华琦数码技术提供

Powered

by:MeSky.Net

2003-2004 年,宽带刚刚普及,下载站的文章区是许多人学电脑的第一课堂。
🕰 → 🤖 从那时到现在

当年一篇教程能让一台电脑焕然一新;今天的效率工具换成了 AI。 想知道当下最可靠的 AI 模型怎么选?看 赢政指数——我们用了 28 年的选软件严谨,现在用来评测大模型。

档案性质声明:本页为赢政天下(1998-2011)老文章的历史档案复原, 内容反映当年发表时的原貌——包括当年的技术表述、软件版本与观点,部分方法在今天已不适用或不合规,仅作互联网历史记录与研究用途, 不提供任何形式的下载。原始数据经由公共网络存档(Internet Archive)复原。发现问题请联系我们
← 返回老文章档案 · 软件史档案馆 · 赢政天下站史