设为首页收藏本站

BIOS之家论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 68936|回复: 520

[自己改吧]ThinkPad T400 and R400+SLIC+白名单图文教程(完整版)     [复制链接]

Rank: 8Rank: 8

签到天数: 299 天

[LV.8]以坛为家I

原创大使 贵宾勋章 特殊贡献勋章

发表于 2009-7-30 10:33:04 |显示全部楼层
本帖最后由 tcl123 于 2009-8-23 17:12 编辑

[自己改吧]ThinkPad T400 and R400+SLIC+白名单图文教程(完整版)
(适合X200的修改、T500系列可以参考)

仅供个人研究测试!!!!!!




我把我自己改的包括白名单的方法全部公布(其实这些方法都是前人摸索出来的,在此一并感谢了!






BIOS的下载地址(3.01-1.03 (BIOS ID: 7UET71WW),日期:2009/05/29
官方地址:
http://www-06.ibm.com/jp/domino05/pc/download/download.nsf/jtechinfo/MIGR-70350
文件名:7uuj31jp.exe
所有工具:WinHex.exe及相关模块解压、分解压及压缩工具。

http://www.endeer.cz/bios.tools/  (这里一般可以下到你所要的工具)。


一、准备工作
1、我们先解压文件“7uuj31jp.exe”以得到我们所要的BIOS文件,如图 1-2 所示。最后我们的是压缩的BIOS文件,其文件名为:“$01B8200.FL1”。


2、对文件“$01B8200.FL1”进一步解压,才能得到可修改的BIOS文件,用工具“e_bcpvpd.exe
来对其解压,命令格式为:e_bcpvpd.exe  $01B8200.FL1 T400.romT400.ROM是我自己起的,可随便起!)。这样我们就得到了一个8M的可修改的BIOS文件“T400.ROM”。如图 3 所示:


3、由于8MBIOS文件用“PBE”软件无法打开,我们只能进行手工修改了。因而必须把它的相应模块进行分离出来。可以用工具“phnxsplit.exe”来完成,其命令格式为:phnxsplit.exe t400.rom,如图 4


运行后会生成好多的模块,但需要的主要是两种模块“ACPI”和“BIOSCODE”。如图 5 所示:
本例中的“ACPI”模块为“ACPI00.ROM---ACPI07.ROM”共8个模块;“BIOSCODE”模块为“BIOSCODE00.ROM---BIOSCODE08.ROM”共9个模块。实际上修改只是“BIOSCODE”模块,“ACPI”模块主要是看它的个数,方便我们加入“ACPI”模块时的序号。本例如果要插入“ACPI”的模块的话,应该是“ACPI08”。






二、加入 SLIC
1、前面我们用了相关工具对其进一步解压T400.ROM文件得到相关的模块文件(其中ACPI模块是从00-07如果说要再加入ACPI模块的话应该是08),BIOSCODE模块是从00-08
2、用WinHex打开所有BIOSCODE开头的模块文件,搜索RSDTSLIC关键字,结果在:
BIOSCODE02.rom 中发现 RSDT SLIC
BIOSCODE04.rom 中发现 RSDT OEMTABLEID 信息 “LENOVOTP-7U
根据赵大的经验和查找各种资料,BIOSCODE04.rom 中会有代码把所有表的 OEMTABLEID 信息 改为“LENOVOTP-7U”,我们就以改为:“LENOVOTP-7U(我们有现存的这个表)”为例。如图6--8所示:




3、我们先把“LENOVOTP-7U”表改造成BIOS的标准模块。这个可以用赵大的“ACPI”压缩模块工具来完成。把“LENOVOTP-7U.BIN”改名为“SLIC.BIN”再运行批处理文件“ACPI.bat”即可。其中“ACPI.bat”的内容为:
ACPI.bat
del ACPI.MOD
fp ACPI.scr
fi ACPI.scr
rom2mod BIOS.ROM ACPI.MOD
ren  BIOS.ROM  acpi.mod
del BIOS.FFV
del _BUILD.TMP
del MODULE.MAP

ACPI.scr”的内容为:
ACPI.scr
BANKS -N:1 -S:256
COMPRESS  LZINT
ACPI SLIC.BIN -x
把这个两个文件和“SLIC.BIN”放在同目录再运行“ACPI.bat”即可。如图9所示:


运行结束后在当前目录下得到一个“ACPI.MOD”的文件,实际上是加一个头部信息的新的SLIC表文件(需自己截取,长度为18EH)。我们用“WinHex.exe”打开它,如图10所示:


头部是从00H--18H,根据赵大的理论其头有如下解释:
字节01    : 固定为 F8 00
字节2       8位校验一
字节3       8位校验二
字节456 : 模块长度(包括头部,即从F8 00开始)
字节7       01--模块未压缩;02--模块是压缩的;F0--还不知道是代表什么
字节8       : 固定为5F(即下划线“_”)
字节9       : 模块类型,41HACPI42HBIOSCOD
字节AB   : 模块的序号(00020203...........
字节C---18   : 基本上是00 00 00 00 FF 00 00 00 00 00 00 00




因我们要加入ACPI模块的是“ACPI08”,所以要作如下修改,修改完记得保存一下,见图11所示:



关于02H位的校验的计算,我是这样计算的:用“WinHex.exe”选中从04H17H部分(14H字节),即图12中的选定部分,从菜单栏中选“计算哈希值”(或按组合键:Ctrl+F2),按确定即可,本例得到的结果为97H,那么校验值:100H-97H=69H


4、把修改好的ACPI08模块插入到T400.ROM文件中,具体做法是:用“WinHex.exe”打开文件“T400.ROM”,以关键字“_A0”来搜索“ACPI”模块的最后一个(实际上ACPI模块不是按编号顺序来存放的。),把我们改造好的“ACPI08”模块插入到T400.ROM文件中的ACPI模块的最后,本例“ACPI06.ROM”为ACPI的最后一个模块如图13所示:


从上图可以看出“ACPI06”模块的长度是57H即从7D5698H开始到7D56EEH结束。从7D56EFH开始又是一个模块的开始了,我们就从7D56EFH处开始插入(怎么插入大家应该会操作的吧),如图14所示:


由于我们插入了ACPI08模块(长度为18EH),对整个的T400.ROM文件长度来讲也增加了18EH的长度,我们必须要让它保持原来的长度,也就是要保持原来的长度不变,必须删除没用的相应长度的字节。我们发现在原来ACPI06模块的后面有大片的“FF”,如图15所示:


从上图可以看出“FF”模块的长度为A060H,校验值为10,我们删除了18EH的长度,就要把这个两个地方作一修正,其长度修正为:A060H-18EH=9ED2H,十六进制写法为:D2 9E;校验值修正为(计算方法同上):A0
如图16所示:


附件: 你需要登录才可以下载或查看附件。没有帐号?注册
欢迎加入OHO77讨论群:108203291、45667892,将军交流群:163562532。加入时请注明自己的需求,并注明论坛ID!
特别提醒:更新BIOS前一定要记得先备份原机的BIOS,以备不时之需!!!切记!

Rank: 8Rank: 8

签到天数: 299 天

[LV.8]以坛为家I

原创大使 贵宾勋章 特殊贡献勋章

发表于 2009-7-30 10:33:38 |显示全部楼层
本帖最后由 tcl123 于 2009-7-31 06:07 编辑

三、修改白名单:



前段时间一直在看汇编,想能不能把它的白名单给破解了,虽然找到的跳转语句,但这样做不是很完美,而且需要屏蔽20才行好多功能也有限制,后来想进一步搞下去,可是水平有限,关键的地方足有50多处,只好放弃!回个头来继续看外国的PATCH工具,用法上一直是个问题,既然有这么个工具我想应该给它好好利用一下,请教了外文老师,终于知道了它的用法。接下来我们就用这个工具来破它的白名单。

1、首先下载PATCH工具,地址为:http://www.endeer.cz/bios.tools/phnxpatch.zip。把它解压到一个目录中,然后在解压的目录中再自己建一个目录(随意)为“biosmod”,为了使用上的方便我还在这个目录中建了一个批处理文件,暂且命名为“patch.bat”吧。其内容为:
phnxpatch patches biosmod
Pause
2、白名单一般都在“BIOSCODE”模块中,经过搜索发现T400/R400X200/X200S所在的白名单模块都是在“BIOSCODE06”中,我们就把它拷贝到刚才建立的目录“biosmod”中。你如果不清楚到底在哪个模块也不要紧,就把上面分解出来的所有“BIOSCODE”模块全部拷贝到这个目录中,PATCH这个工具还蛮智能的了,它会自动查找、对比和个修改。把全部“BIOSCODE”考入该目录后,我们运行批处理“patch.bat”文件,它自动找到了06模块并对其进行了PATCH。在目录“biosmod”中生成了一个叫“BIOSCODE06.rom.patched”的新文件。图17是运行后的效果:



好了,现在我们要做的事是要把“BIOSCODE06.rom.patched””这个模块改造一下进行替换原BIOS文件中的06模块,即我们把它压缩成一个标准的模块我们用“bioscode.bat”、“bioscode.scr”来完成。其内容分别是:
bioscode.bat
DEL bioscode.MOD
DEL BIOS.ROM
fp bioscode.scr
pause
fi bioscode.scr
pause
DEL BIOS.FFV
DEL MODULE.MAP
DEL _BUILD.TMP

bioscode.scr
BANKS -N:1 -S:64
COMPRESS  LZINT
bioscode bioscode06.rom

我们以上三个文件放在同一目录中,并把“BIOSCODE06.rom.patched”重新命名为“BIOSCODE06.rom”,运行一下批处理“bioscode.bat”文件后会在当前目录下生成一个名为“BIOS.ROM”的文件,其大小为64K。用“WinHex”打开如图18所示:



从前面对模块的定义可以知道,压缩后的模块01H位校验为79H,长度为86FFH,模块编号为_B00。要替换的是_B06模块,我们要把修改一下,把02H位的校验修正为73H79H-06H=73H),把_B00改为_B0686FFH开始以下的内容全部删除(模块长度86FFH是从0000H开始到86FEH结束的[0000H+86FFH-1=86FEH])。另存为“BIOSCODE06.MOD”。其部分效果图见图19所示:


还是用“WinHex”打开本例的BIOS文件“T400..ROM”,以关键字“_B06”来搜索原始06模块的位置,结果如图2021所示:



从图2021可以看出原06模块在BIOS的偏移是从767CF2H开始到7703F9H结束,长度为8708H。偏移7703FAH即为下一模块的开始了。刚才我们压缩的模块长度是86FFH,少了9个字节(8708H-86FFH=9H),我们就要在刚才压缩的“BIOSCODE06.MOD”的尾部加上9个字节的“00”,以保持原始和修改后的06模块的长度保持完全一致。见图22所示:


其他地方不用再作修改,因加入的是“00”字节,它的校验也不会发生变化。好了我们全选(可以按Ctrl+A组合键)再按组合键(Ctrl+C)复制,回到T400.ROM用鼠标点一下偏移“767CF2H”、“F8”按组合键(Ctrl+B)进行替换。最后检查一下偏移“767CF2H”和“7703F9H”这两个位置的内容是否正确,有否影响了其他模块,正确无误后保存一下文件就行了,至此破解白名单的任务完成了。我们看一下替换后的效果图,见图2324所示:



从图2324可以看出完全正确,你可以进行刷新测试了,但要记住一点,没有把握的事绝对不做,刷BIOS有风险,刷修改的BIOS风险更大!切记!切记!






四、关于BIOS的刷新
这里只讲修改后的BIOS文件后缀是“ROM”和“WPH”,也即是未经过压缩的刷新方法(后缀是FL1的可不必刷两次,直接覆盖解压后的官方原文件即可刷新)。

说明:刷新之前请先在BIOS设置中去掉所设的用户密码(包括超级用户密码)及其他一些个人设置!

1、从官网下载得到原文件本例的文件名为“7uuj31jp.exe”后,用解压缩软件(WINRAR7Z都可)把它解压到一个目录中,然后运行里面的文件“WINUPTP.EXE”进行升级(见图28)!


2、升级正常后再运行里面的“WinPhlash.exe”文件,在specify new BIOS file处选我破解的bios文件(本例为“T400.ROM”) ,然后点flash BIOS,完成后重启就可以了(见图29)。


有时参数设置按钮可能不会出现在界面中,如需要可以在文件“PHLASH.INI”加上下面的语句就可以了:
[UI]
Advanced=1

五、最后再一次提醒大家的是,刷BIOS有风险,本人只是爱好而已,并不推荐大家都去这么做。本文参考了不少资料及前人修改BIOS的经验教训,在这里一并表示感谢,不当之处还请大家指正!



下面的连接是T400改的TP-7U:(已测)没加白名单!



http://yjz2009.qupan.com/4170219.html
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
欢迎加入OHO77讨论群:108203291、45667892,将军交流群:163562532。加入时请注明自己的需求,并注明论坛ID!
特别提醒:更新BIOS前一定要记得先备份原机的BIOS,以备不时之需!!!切记!

使用道具 举报

Rank: 3Rank: 3

该用户从未签到

发表于 2009-7-30 10:34:30 |显示全部楼层
本帖最后由 eviliver 于 2009-7-30 10:57 编辑

说实话看得不是很懂,TCL大能帮忙改一下X60t的Bios么?

http://bbs.bios.net.cn/thread-70028-1-1.html

使用道具 举报

Rank: 2

该用户从未签到

发表于 2009-7-30 10:36:42 |显示全部楼层
看不到图
另外我这种电脑白痴还是等傻瓜版及刷新教程吧。。。

使用道具 举报

Rank: 5Rank: 5

签到天数: 72 天

[LV.6]常住居民II

发表于 2009-7-30 10:38:00 |显示全部楼层
看不到图,打包一下吧。

使用道具 举报

Rank: 2

该用户从未签到

发表于 2009-7-30 10:38:35 |显示全部楼层
赞,不过还是不敢自己搞,水本,吓人啊

使用道具 举报

Rank: 3Rank: 3

签到天数: 1 天

[LV.1]初来乍到

发表于 2009-7-30 10:40:31 |显示全部楼层
看不了图片....

使用道具 举报

Rank: 3Rank: 3

该用户从未签到

发表于 2009-7-30 10:48:28 |显示全部楼层
支持一下,好好学习之,老大辛苦了

使用道具 举报

Rank: 2

该用户从未签到

发表于 2009-7-30 10:51:26 |显示全部楼层
R60的也可以照着这个改吗?
Phoenix的bios

使用道具 举报

Rank: 3Rank: 3

签到天数: 1 天

[LV.1]初来乍到

发表于 2009-7-30 11:22:33 |显示全部楼层
有点不明白,为啥都喜欢去日本的网站下呢?

使用道具 举报

您需要登录后才可以回帖 登录 | 注册


Archiver|BIOS之家 ( 蒙ICP备12000608号 )  

GMT+8, 2012-5-17 20:11 , Processed in 0.491520 second(s), 18 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部