[会员中心]    [设为主页][加入收藏][发布文章]  [中文繁體]
电脑
软件
手机
软件
网站
源码
文章
资料
    文 章 搜 索
[选项]
    推 荐 文 章       More...
华硕易电脑(ASUS Eee PC 1025C)驱动程序(Windows XP)安装参考(图) 华硕易电脑(ASUS Eee PC 1025C..
  先来段开场白:为了外出携..
Acronis True Image 使用说明 Acronis True Image 使用说明
  一款可以在Windows下使用..
Norton Ghost 使用详解 Norton Ghost 使用详解
一、分区备份   使用Ghost..
Windows 2000/XP/2003 系统封装参考及工具 Windows 2000/XP/2003 系统封..
  一直以来,安装操作系统和..
    阅 读 排 行
Intel GMA 3600 V1.15 for Windows XP 驱动程序配置过程图解 Intel GMA 3600 V1.15 for Window..
Intel GMA 3600 V1.15 for Window..
夏普(SHARP) AR-1808S 以 A4 尺寸纸张扫描 夏普(SHARP) AR-1808S 以 A4 尺..
  新装的夏普(SHARP) AR-1808S..
中国电信的家庭宽带设置“端口映射”及获取公网IP地址 中国电信的家庭宽带设置“端口映..
  现在有些家庭/店铺安装了视..
路由器串联(路由器的分支再接一个路由器) 路由器串联(路由器的分支再接一..
  问题:路由器的分支再接一个..
XHTML 中 a 标签 target 属性失效的解决方法 XHTML 中 a 标签 target 属性失..
  在HTML 4.01/XHTML 1.0/XHTML..
19寸液晶显示器更换显卡后没有分辨率 1440*900 19寸液晶显示器更换显卡后没有分..
  宿舍的电脑更换显卡后,驱动..
申请/注销/关闭腾讯QQ空间 申请/注销/关闭腾讯QQ空间
  申请/注销/关闭腾讯QQ空间网..
电脑机箱(主板)前面板 USB 数据线的接线参考(图) 电脑机箱(主板)前面板 USB 数据..
  一、概述   因为每个 US..
  文 章 信 息
    CMOS破解完全手册
[留言][评论][收藏]
[文章分类:电脑系统/网络/软件安装/卸载/设置][字体:隶体/楷体/宋体/黑体][字号:12px/14px/16px/18px][颜色:] 
CMOS破解完全手册
1)对于CMOS而言,相信大家已经不再陌生。对于破解CMOS密码的文章也有不少。在这里偶(cartoonboy)根据自己的经验并参考精华区的相关文章来说明如何解开CMOS密码:
先向大家说明一下CMOS的一些结构:
00000000H 30 00 FF 00 39 00 FF 00 12 00 FF 00 01 00 18 00
秒 秒报警 分 分报警 小时 时报警 星期 日
00000010H 11 00 98 00 26 00 02 00 70 00 80 00 00 00 00 00
月 年 寄存器A寄存器B寄存器C寄存器D 诊断 下电
00000020H 40 00 7E 00 F0 00 03 00 0F 00 80 00 02 00 00 00
软驱 密码域 硬盘 未知 设备 基本内存 扩充
00000030H 7C 00 2E 00 00 00 7F 00 15 00 86 00 00 00 00 00
内存硬盘类型 未知 密码数据位 未知
00000040H 00 00 00 00 00 00 00 00 00 00 00 00 E2 00 22 00
未知
00000050H 0F 00 FF 00 FF 00 E1 00 22 00 3F 00 08 00 59 00
未知
00000060H 00 00 7C 00 19 00 80 00 FF 00 FF 00 FF 00 FF 00
未知 世纪值 未知
00000070H 7D 00 81 00 AA 00 0F 00 39 00 9B 00 E8 00 19 00
未知
上述的内容参考了其他资料,所以不一定完全正确.在38H-3BH这四个字节中,由于39H和3BH这两个字节一直为00H,所以就略过,那么CMOS密码的关键就集中到了38H和3AH这两个字节上。先介绍一点Award的密码规则,Award允许一位至八位密码,每一个字符的范围由20H-7FH,也就是由空格到ASCII码的127号。想必大家已经发现了,八个字符要放到两个字节中去,好象不压缩一下是不行的。的确,Award是将其压缩了,但是不是普通的压缩方法,我想Award另有将其加密的想法,因为在CMOS中空位还很多,要想放八个字节看来是没有什么问题的,不过这么裸露的密码就更加没有什么用处了。通常的压缩方式有无损压缩,如zip,arj等,或者是有损压缩,象mpeg,jpeg等。但是对这么几个字节,这些方法就没有什么用武之地了,而且压缩过的东西,应该是可以还原的,否则压来压去就没有什么意义了。不过Award的方法就不同了,他不仅仅进行了超级的有损压缩用的是HASH算法,而且这种压缩是不可还原的,下面就给出他的加密压缩方法(以下数值,运算均基于16进制):假如有一密码,八位,记为:ABCDEFGH(每一位的取值范围为20H-7FH),将其按下列公式运算:H+4*G+10*F+40*E+100*D+400*C+1000*B+4000*A ,将结果按由低到高保存到:H1,H2,H3,字节中,然后将H2保存到地址:3AH中,将H1和H3的和保存到38H中。如果密码不足八位,以此类推。

下面举一实例:我的密码为:r*vte,ASCII码为:72H、2AH、76H、74H、65H,按公式运算得:72*100 + 2A*40 + 76*10 + 74*4 + 65=8615,于是H1=00H,H2=86H,H3=15H,所以3AH的值为86H,38H的值为15H。看来密码就这么简单,在你每次输入密码的时候,BIOS将其算算,再与CMOS中的值比较一下,如果一样就放行,否则免谈。过程就是这样,不过还是有些问题要说明,先算算看,两个字节可以表达的密码可以有多少种:164=65536种,而八位密码,每一位有96种选择,则可以表示的密码有:968≈7.2×1015种,所以理论上说,每一个密码,都可以找出大约1011这么多个可以起相同作用的密码。但是事实上并不是大家都是八位的密码,或许没有大得这么吓人,不过也挺多的,就如我那个密码,光与他相同功能的五位密码就有二十五万多个,而六位,七位,八位的更多,数量不详,因为从来没有把他算完过,时间太长了,耗不起。

2)关于通用密码:
Award4.51版以前的才有通用密码,
wantgirl
Syxz(pay attension to the capital letter)
dirrid
wnatgirl

3)在这里再向大家介绍一下复旦网友们的破解程序:(道德感不佳者和功力不够深者略过)

(零)
这个是斑竹偶(cartoonboy)连破十几台机器攻无不克的方法,要珍惜哦:)
you try (under dos)
debug
o 70 2e
o 71 00
o 70 2f
o 71 00
note:在windowsNT下,很多破解程序都无法使用,原因在于WindowsNT的DOS是模拟的禁止对CMOS写入,请大家注意。

(一)
//AMIPWD.CPP --- Show AMI Password String
//Compile with SMALL model Tel:027-7800172 7404402(H)
//Email:[email protected]
#include
#include
#define BYTE unsigned char
char AMI_unEncrypt( BYTE key,BYTE c2){
asm xor di,di
asm mov bl,key
asm mov cl,c2
lab1:
asm test bl,0xc3
asm jpe lab2
asm stc
lab2:
asm rcr bl,1
asm inc di
asm cmp bl,cl
asm jne lab1:
return _DI;
}
BYTE rbyte(int port){
outp(0x70,port);
outp(0xed, port);
return inp(0x71);
}
// 0x38-3d password code 0x37 initial value
void main(){
int i, length;
static BYTE secret[7];
char str[22]="";
for(length=0; length<7; length++)
secret[length] = rbyte(0x37+length);
secret[0] &= 0xf0;
for(i=0; i<7 ,secret[i+1]>0; i++)
str[i] = AMI_unEncrypt(secret[i], secret[i+1]);
str[i+1]=0;
if (secret[1]==0)
printf("No password\n");
else
printf("Password=%s\n",str);
return;

(二)
前述针对AMI主板的BIOS口令破译算法在BIOS日期为91.5.5, 91.7.7, 91.12.12,92.6.6和92.11.11的微机上测试通过. 为便于理解,将解密算法的C代码列出:
char AMI_unEncrypt( BYTE key,BYTE c2){
BYTE num[]={ 0,1,1,2 };
int di=0,c;
do{
c=num[key>>6]+num[key&3];
if (c&1) key=0x80+(key>>1);
else key>>=1;
di++;
}whi[an error occurred while processing this directive]

文章作者:未知  整理日期:2005-10-09
[文章浏览:][打印文章][发送文章]
相关文章
·BIOS 与 CMOS 区别 2006-08-20
阅读说明
·本站大部分文章转载于网络,如有侵权请留言告知,本站即做删除处理。
·本站法律法规类文章转载自[中国政府网(www.org.cn)],相关法律法规如有修订,请浏览[中国政府网]网站。
·本站转载的文章,不为其有效性,实效性,安全性,可用性等做保证。
·如果有什么问题,或者意见建议,请联系[网站管理员]
原“浪人文章”网站改名“老若尔文章站”,域名:article.lre.cn
本站使用【啊估文章站】网站系统    [联系网站管理员]         闽ICP备08009617号