如何破解ThinkPad T400的BIOS管理员密码

伯乐在线注:

  1. 本文来自文章作者 Duke(@OvationDuke)的投稿,其他媒体如需转载,请先联系获得作者的许可。
  2. 本文只做技术交流之用,对于应用本文涉及到技术所造成任何损失,均与作者和伯乐在线无关,请自行负责。

 

一般情况下没人会去设系统BIOS管理员密码(Supervisor Password,以下简称SVP)。但是如果你很无聊,设置了SVP,并且又忘记了,并不代表你不能用电脑了,只要你不需要进入BIOS更改系统设置还是可以用电脑的。但是有些情况下开机就要你输入BIOS SVP密码,比如BIOS设置出现错误,开机无法通过自检,系统一定要你进入BIOS重设参数,这种情况下电脑生产厂商会告诉你,没救了,只有换主板了。我在08年购买了一台ThinkPad T400,后来很快被偷了,然后又被Fremont的警察找到还给了我(感谢他们),于是我设置了BIOS  SVP,因为那台电脑几乎闲置没用,所以我也不记得当初的密码是什么了,最近发现开机就必须要我输入SVP。然后打电话到联想北美Thinkpad维修中心,被告知只能换主板了,大概要400刀。接下来这篇文章就是告诉你怎样只用一块钱就找回你的SVP密码。

BIOS本身是写在ROM上的,BIOS的参数存放在一小块特殊的RAM中,叫做CMOS Memory,有专门的电池给CMOS Memory供电保持RAM上数据。多年前的电脑SVP是存储在CMOS Memory上的,所以拔掉电池放电就能够清除SVP。这里顺便说一下,Thinkpad系列电脑还可以设置开机密码(不同于SVP),开机密码是存放在CMOS Memory上的,所以你如果忘记开机密码的话,打开键盘下的盖子,找到一个黄色纽扣电池(CMOS Battery)拔掉和主板的连线,过一分钟再连上然后开机,进入BIOS从新设置参数。不同于开机密码,Thinkpad是把SVP加密后存放在eeprom上的,eeprom能够永久存储,所以放电对SVP不起任何作用。

我们的思路很简单,读取eeprom的数据,解密SVP。我手里正好就有一个DediProg SF100专门读写ISP eeprom的工具。但是T400用的是I2C接口的eeprom跟ISP接口不一样。I2C接口只需要两个端口即可读写,比ISP还要简单些。网络上有人已经做出了很简单的通过Serial Port读I2Ceeprom的电路。我在这里借用简化后的电路图。原文可以在这里找到http://sodoityourself.com/hacking-ibm-thinkpad-bios-password/ 。但是这篇文章很老了,而且步骤不详细。

 

为了组成这个电路你需要准备两个2.2千欧的电阻,两个5.1v的稳压二极管,按照图示分别连接到Serial Port的4587端口上,另一端连到eeprom I2C的SDA和SCL两个引脚。买这些东西,我只花了一美元。

下面要做的是找到T400的eeprom的位置。T400用的NXP的P24S08 eeprom,你需要打开T400后盖,如图所示找到P24S08的SCL和SDA位置。

同时下载软件PonyProg。PonyProg通过serial port读写eeprom。首先需要正确配置的eeprom型号。P24S08是8bit I2C,型号24xxx。设置好之后,打开T400电源,等到Thinkpad Logo出现后即将消失那一瞬间(timing很重要),将以上电路连接到eeprom的SDA和SCL引脚上。同时点击PonyProg的read button,你会发现eeprom的内容被读到PonyProg上,然后将其保存为bin二进制文件。这个时候你就可以用软件IBM Pass 2.0 Lite解码bin文件,从解码的结果中很容易发现疑似密码的字符串。这个电路和PonyProg配合是一个非常不错的DIY工具可以读取任何I2Ceeprom内容。

如果你不在乎知道以前的SVP,读eeprom内容和解码这两步完全可以省略。在连接上SCL和SDA端口后,不需要输入SVP就可以进入BIOS,有些时候你会发现设置项Supervisor Password是Disabled(取决于连接的timing,需要多试几次),然后你就可以Enable该选项,不需要输入以前的SVP,只要重设密码,保存重启就行了。

 

Ovation Duke

2013-4-13

 

 

收藏 评论

相关文章

可能感兴趣的话题



直接登录
跳到底部
返回顶部