破解ThinkPad BIOS的超级密码

破解ThinkPad R50 BIOS的超级密码

由于太久没进BIOS居然忘了密码,这才有了这个破解经历!得到的教训是除非对自己的记忆很自信,能不设密码就尽量不要设,特别是超级密码,否则后果很严重!

一、ThinkPad密码简介

ThinkPad密码有三种类型

(1)开机密码(Power On Password)

开机密码,安全级别最低,可以通过开机取下CMOS电池放电取消密码。

(1)硬盘密码(Hard Disk Password)

可以保护硬盘数据安全,通过放电无法取消该密码,但可以通过软件破解,这里就不介绍了,可以参考EraseON & KeyON - HDD unlocking software

(2)超级密码(Supervisor Password)

最安全的一种方式,但当你忘记密码时也是最麻烦的一种,通过放电无法取消密码,因为这个密码记录在一个EEPROM中,断电数据也能保存十年,所以可采取的方法有更换主板、更换EEPROM、重写EERPOM或者读取EEPROM数据然后破解。经过衡量我选择了最后一种方法,虽然有一定的风险但是成本最低,但需要您有一点点电子知识和一点风险承担能力^-^,下面就来介绍我的破解过程,希望对忘记密码的您有所帮助。

二、超级密码破解过程

1、原理介绍

IBM ThinkPad 使用一个很小的EEPROM(R50上是ATMEL 24RF08,一些新的机型可能是用不同芯片,下文都针对24RF08)来保存OEM信息,例如序列号、UUID等等,超级密码(SVP)也保存在这个芯片中。24RF08有8针和14针两种针脚布局,请看下图:

要破解密码首先要从EEPROM中读出数据,第一种方法我们可以从主板上取下EEPROM然后用编程器读取其中的数据;第二种方法是不取下EEPROM,通过焊接导线直接读取数据,两种方法各有利弊,可以根据各自情况选取一种,我这里介绍第二种方法。首先找到TP的24RF08芯片,然后在GND、SCL和SDA上焊接三根导线,GND导线其实连接到主板螺丝孔就行,这样就只需要焊连根线。然后制作一个串口(COM)读取器,从另一台电脑使用R24RF08.exe程序读取芯片数据,最后用IBMpass.exe分析该数据得到超级密码。

2、24RF08芯片导线焊接

由于针脚小而且密,选择导线的时候尽量细,焊接前先用绝缘胶带把主板上离针脚近的焊接点屏蔽,既可以保护主板,也可防止焊接时短路。

提醒,一定要小心检查一遍两遍甚至三遍确保线焊接无误,使用万用表检测,使用胶带固定好导线,以免脱落。

3、软件下载

R24RF08 v2.0b下载

IBMpass v2.1 Lite 下载

4、串口(COM)读取电路制作

(1)元器件

1/4W伪金膜电阻2.2k欧两个

1W 5.1V ST稳压二极管(C5V1即可) 两个

DB9母(孔) COM接口一个(2)电路示意图

(3)焊接完成图

再次提醒,一定要小心检查一遍两遍甚至三遍确保线焊接无误,使用万用表检测,使用胶带固定好导线,以免脱落

(4)电路检测

为确保万无一失,先在不接R50的情况下测试这个电路是否正确,Rr24rf08这个软件安装完后目录下(默认C:/ALLservice/24RF08/)有一个测试程序itester.exe,将电路接到串口

COM1上,运行该程序会在SDA,SCL接口上产生周期5秒幅值为5V左右的方波,可以用万用表量,我测出的值为高电压(1) 5.1V 低电压(0) 0.76V,如果波形没错,说明这个电路可用了。

5、读取24RF08数据

准备好一台PC把制作好的接口连接到COM1上(先不要连接到EEPROM的导线)。打开R50的电源,按F1进入BIOS设置程序,当进入提示输入密码界面并且没有硬盘读写操作后把EEPROM导线(首先接上GND!,再是SDA、SCL)连接到接口的对应的导线上,然后执行R24RF08:

r24rf08.exe 其中filename.ext是保存EEPROM数据的文件。

例如:r24rf08 r50.bin

文件建立后,断开连接线(GND最后断开!),关闭R50的电源。

下边列出r24rf08.exe几种操作情况供参考:

(1)电路没有联接到电脑COM1

C:/ALLservice/24RF08>r24rf08 r50.bin

24RF08 eeprom reader v2.0b - Win32 Console Version

Copyright (C) Victor Voinea, ALLservice 2004-2005, www.allservice.ro

----------------------------------------------------------------

Initializing timer...17208 OK!

ERROR: Circuit not found or bus error!

----------------------------------------------------------------

Hit to exit...

(2)电路连接到电脑COM1,但没有联接到R50

C:/ALLservice/24RF08>r24rf08 r50.bin

24RF08 eeprom reader v2.0b - Win32 Console Version

Copyright (C) Victor Voinea, ALLservice 2004-2005, www.allservice.ro

----------------------------------------------------------------

Initializing timer...16369 OK!

ERROR: Eeprom not available!

----------------------------------------------------------------

Hit to exit...

(3)电路连接到电脑COM1,同时连到R50,读取成功

C:/ALLservice/24RF08>r24rf08 r50.bin

24RF08 eeprom reader v2.0b - Win32 Console Version

Copyright (C) Victor Voinea, ALLservice 2004-2005, www.allservice.ro

----------------------------------------------------------------

Initializing timer...16369 OK!

Reading eeprom...

>>>>>>>>

Done.

1024 bytes saved in r50.bin

----------------------------------------------------------------

Hit to exit...

6、显示密码

运行IBMpass,打开刚才得到的r50.bin,然后找到0x330,0x340行,密码就从0x338开始,设置AA按钮为"ON"状态,就可显示密码,至此大功告成J

相关文档
最新文档