最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

联想(IBM)PhoenixBIOS+SLIC全教程

IT圈 admin 60浏览 0评论

2024年1月9日发(作者:臧晴丽)

联想(IBM) PhoenixBIOS增加SLIC表修改全教程

(用来激活联想和IBM的VISTA)

作者:赵亮 论坛: 网名:zhaoliang Email:zhaoliang518@

欢迎转载,但请保留上面的信息,谢谢合作 !

IBM ThinkPad NoteBook 的BIOS一直没有人修改,原因有两点:

1,BIOS 文件是压缩过的,必须解压缩参能修改。

2,60以上系列的BIOS文件是2M以上的,最新版的Phoenix BIOS Editor220 编辑工具不支持2M以上的BIOS的修改。

下面以 ThinkPad X60S 为例讲解一下研究和修改过程:

1、下载ThinkPad X60, X60s 2.12版的升级BIOS官方BIOS,

ftp:///pc/pccbbs/mobiles/

附注:发现文件名的前两个字母“7B”就是RSDT的OEMTABLEID中的字符,

X60, X60s 的RSDT的OEMID+OEMTABLEID =“LENOVOTP-7B ”(后面是3个空格)

本文为了省略,提及“OEM信息”就是“OEM ID 和OEM TABLE ID”的意思。

2、解压缩 ,运行里面的 即可正常升级。

注意升级BIOS之前,一定要电池电量在 50% 以上,一定要插上电源适配器。

3、BIOS的解压缩,感谢远景的dimsage提供BIOS解压软件“e_”。

软件是dos的,可在MSDOS窗口中运行,命令如下:

e_bcpvpw $1

就是从$1文件解压出来的,我们可以修改文件了。

4、在网友iiair的配合测试下,逐步发现IBM ThinkPad NoteBook 的BIOS 的特点。

用Phoenix BIOS Editor220打开,会提示错误,如图:

到Phoenix BIOS Editor220 安装目录下的TEMP文件夹,这里是解压的所有模块,

注意 文件和文件,这两个文件是BIOS模块的配置和记录。

文件如下:(模块在BIOS文件中的位置是从下往上的)

- Generated by BIOS Editor

2097152 Bytes (Bank Layout = 2048KB x 1) BIOS是2MB的,多出的部分是描述信息(刷BIOS必用的)

MODULE NAME C I B START END SIZE LINK1 LINK2

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

I 0 0 FFFF8000 FFFFFFFF 08000 BIOS文件的最后64K(8000h)是启动模块

X 0 0 FF1E8353 FF1EFFEF 07C9D FFFE76A8

D 0 0 FF1E76A8 FF1E8352 00CAB FFFE725D

G 0 0 FF1E725D FF1E76A7 0044B FFFE620B

MOD_ V 0 0 FF1E620B FF1E725C 01052 FFFE616E

A 0 0 FF1E616E FF1E620A 0009D FFFE6120

A 1 0 FF1E6120 FF1E616D 0004E FFFE5F29

A 2 0 FF1E5F29 FF1E611F 001F7 FFFE5EC7

A 4 0 FF1E5EC7 FF1E5F28 00062 FFFE5E81

A 5 0 FF1E5E81 FF1E5EC6 00046 FFFE5E16

A 6 0 FF1E5E16 FF1E5E80 0006B FFFE5DC9

A 7 0 FF1E5DC9 FF1E5E15 0004D FFFE5D73

A 8 0 FF1E5D73 FF1E5DC8 00056 FFFE5CFA

ACPIX是ACPI表模块,ACPI模块后的数字都是按顺序排列的(注:中间不能有空,在其它位置),

本例最大如果加ACPI模块的话,必须是

L 1 0 FF1E5CFA FF1E5D72 00079 FFFE5C4D

L 2 0 FF1E5C4D FF1E5CF9 000AD FFFE5BBE

L 3 0 FF1E5BBE FF1E5C4C 0008F FFFE5B7B

L 4 0 FF1E5B7B FF1E5BBD 00043 FFFE5B3B

L 5 0 FF1E5B3B FF1E5B7A 00040 FFFE5AB8

L 6 0 FF1E5AB8 FF1E5B3A 00083 FFFE5A2C

L 7 0 FF1E5A2C FF1E5AB7 0008C FFFE59A0

L 8 0 FF1E59A0 FF1E5A2B 0008C FFFE5915

L 9 0 FF1E5915 FF1E599F 0008B FFFE588B

L 10 0 FF1E588B FF1E5914 0008A FFFE5856

L 11 0 FF1E5856 FF1E588A 00035 FFFE57F9

L 12 0 FF1E57F9 FF1E5855 0005D FFFE50E3

L 13 0 FF1E50E3 FF1E57F8 00716 FFFE50A0

MOD_ * 0 0 FF1E50A0 FF1E50E2 00043 FFFE5050 重要,HOLE模块的设置信息,位置和大小

B 0 0 FF1E5050 FF1E509F 00050 FFFE0005 FFFB00C0

" . . . FFFB00C0 FFFB0170 000B1 FFF68ACA

" . . . FFF68ACA FFF6E188 056BF

“” 被分割成3段了,也有可能是其它模块,出现上面的情况原因是HOLE的位置是固定的,

模块写到HOLE的位置,只能跳过。也可以理解为模块被HOLE隔断了。

X 1 0 FF1E0005 FF1E504F 0504B FFFDC08D

S 0 0 FF1DC08D FF1E0004 03F78 FFFCC865

C 0 0 FF1CC865 FF1DC07F 0F81B FFFC31B4

R 0 0 FF1C31B4 FF1CC864 096B1 FFFBE9E2

R 1 0 FF1BE9E2 FF1C31B3 047D2 FFFBABCB

R 2 0 FF1BABCB FF1BE9E1 03E17 FFFB6168

E 0 0 FF1B6168 FF1BABCA 04A63 FFFB24AD

T 0 0 FF1B24AD FF1B6167 03CBB FFFB20F3

L 14 0 FF1B20F3 FF1B24AC 003BA FFFB175E

L 15 0 FF1B175E FF1B20F2 00995 FFFB1259

L 16 0 FF1B1259 FF1B175D 00505 FFFB0B1E

L 17 0 FF1B0B1E FF1B1258 0073B FFFB0454

L 18 0 FF1B0454 FF1B0B1D 006CA FFFB0256

MOD_ < 0 0 FF1B0256 FF1B0453 001FE FFFB0171

MOD_ J 0 0 FF1B0171 FF1B0255 000E5 FFFA7523 SLIC表的PUBKEY部分,被BIOS屏蔽了

M 0 0 FF1A7523 FF1AFFFF 08ADD FFF977B2

MOD_ Q 0 0 FF1977B2 FF1A7522 0FD71 FFF928EF

A 3 0 FF1928EF FF1977B1 04EC3 FFF900D4

注意看 ! 的位置,并没有和其它ACPI模块在一起,说明ACPI模块的位置没有必要按顺序排列 !!!

L 0 0 FF1900D4 FF190131 0005E FFF8FAA7

L 19 0 FF18FAA7 FF1900D3 0062D FFF8B8DF

MOD_ H 0 0 FF18B8DF FF18FAA6 041C8 FFF7B8C4

MOD_ / 0 0 FF17B8C4 FF18B8DE 1001B FFF758A9

MOD_ . 0 0 FF1758A9 FF17ACC3 0541B FFF75617

MOD_ F 0 0 FF175617 FF1758A8 00292 FFF735FC

MOD_ - 0 0 FF1735FC FF175188 01B8D FFF72AEB

MOD_ , 0 0 FF172AEB FF1735FB 00B11 FFF6E3B2

MOD_ K 0 0 FF16E3B2 FF172AEA 04739 FFF6E189

MOD_ K 1 0 FF16E189 FF16E3B1 00229 FFF5E2AE

B 1 0 FF15E2AE FF168AC9 0A81C FFF542E5

ACPI表加载的代码,一般都在 模块中,其中发现SLIC表的判断代码,不符合条件就不加载SLIC表

B 2 0 FF1542E5 FF15E2AD 09FC9 FFF4C4F5

B 3 0 FF14C4F5 FF1542E4 07DF0 FFF4A619

大部分的IBM的BIOS,ACPI表的 OEMID和OEMTABLEID 都被一段代码修改了,这段代码就在模块中,

不管原来的OEMID和OEMTABLEID 是什么,都将替换成为 中开头的 OEMID和OEMTABLEID,

本例:“LENOVOTP-7B ”

B 4 0 FF14A619 FF14C4F4 01EDC FFF42090

B 5 0 FF142090 FF14A618 08589 FFF402CB

B 6 0 FF1402CB FF14208F 01DC5 FFF20000

原来的BIOS,模块到之后,直接指向 FFF20000 ,FF1402CB 上面还有空位(注:不在HOLE的范围)

所以在上面空位上加上 ,修改 的指向为 ,

下面是改后的//////////////////////////////////////////////////////////////////////

B 6 0 FF1402CB FF14208F 01DC5 FFF4013A

A 9 0 FF14013A FF1402CA 00191 FFF20000

注:是我加进去的。 的指向为 FFF4013A ,就是新加的的位置,

又指向 FFF20000 ,这样,就是在 和MOD_ 中间插入一个

上面是改后的/////////////////////////////////////////////////////////////////////

MOD_ ? 0 0 FF120000 FF121D6A 01D6B FFFFFFF0

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

Flash Storage Information

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

ESCD FFE00000 FFE01FFF 02000

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

Fixed Location Modules Information

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

FFF10000 FFF1FFFF 10000

FFE02000 FFE2FFFF 2E000

看了一下MOD_,如下:

蓝色标识的概念还不清楚,暂且认为是HOLE的类型吧,20似乎是非压缩,

红色标识是HOLE的起始位置,淡紫色标识是HOLE的长度,

例如:00 00 F1 FF 00 00 01 00 ==〉FFF10000 10000

补齐HOLE信息如下:

FFF10000 FFF1FFFF 10000

FFF20000 FFF21FFF 2000

FFE02000 FFE2FFFF 2E000

FFFB0000 FFFB00DF C0

注意,就是预装VISTA的BIOS中SLIC表MARKER的位置,只是被加密和转码了

目前还没找到加密和转码的规律。所以还不能完美修改BIOS。

参考 用WINHEX看了一下,可以看出BIOS的大部分模块还是在后 1M里,Phoenix BIOS Editor220基本能释放大部分的模块,只有HOLE模块释放不正常。于是我把2M 的BIOS用winhex去掉一些内容,改成1M 的BIOS,不断的修改,发现了修改方法。

5、因为要手动修改BIOS,所以改动越少越简单,那么首先考虑OEMID和TABLEID,

因为RSDT、XSDT、SLIC 的 OEMID和TABLEID必须一致才行,

winhex打开文件,搜索 RSDT,如图:

看到的RSDT和XSDT的OEM信息和我们实际在WINDOWS系统中看到的不一样,

实际是“LENOVOTP-7B ”,所以在所有模块中找“LENOVOTP-7B ”,

在“”的开头位置,发现了“LENOVOTP-7B ”,

编译“”,发现有代码会修改所有ACPI表的OEM信息为“LENOVOTP-7B ”,

如果我们要修改“LENOVOTP-7B ”,那么“”模块的大小就有可能变化,

这样改BIOS太麻烦,怎么办?iiair从预装VISTA的X60KFC上备份出OEM信息为“LENOVOTP-7B ”的SLIC表,这样SLIC表的OEM信息就和 RSDT、XSDT的信息一致了,

我们就不需要改BIOSCODE3模块了。

6、制作ACPI模块,在官方的程序中,复制、 、到一个新的文件夹,改名为、,修改的内容如下:

prepare

用文本文件打开文件,修改内容如下:

COMPRESS NONE

ACPI

把OEM信息为“LENOVOTP-7B ”的SLIC表也复制到这里,执行,

得到非压缩的模块文件。

7、winhex打开,按照中的位置找到的位置,

A 8 0 FF1E5D73 FF1E5DC8 00056 FFFE5CFA

FF1E5D73在BIOS文件中的位置是1E5D73 ,如图:

哈哈,的前四个字节(红色标识)是“FFFE5CFA”,就是下一个模块的位置,

的第八个字节(蓝色标识)是“08”,就是ACPI表的数字标识。

winhex打开文件:

根据上面ACPI8 模块的定义,修改第8个字节为“09”,这个模块就变成“ACPI9”了,

ACPI9模块的长度是 191h

8、winhex打开,按照中的位置找到的位置,

B 6 0 FF1402CB FF14208F 01DC5 FFF4013A

FF1402CB在BIOS文件中的位置是1402CB ,如图:

我们看到上面的191h是空的,而且范围不在任何其他模块和HOLE中,

所以我确认这是可用空间,所以把的内容复制(CTRL+C)并覆盖(CTRL+B)到BIOS中的14013Ah处,如图:

首先修改14013Ah处,改为下一个模块的位置“FFF20000”,如图:

再修改1402CBh处,改为下一个模块ACPI9的位置14013Ah 如图:

保存修改,所有修改过程结束,是不是很简单 !

复杂的部分:

1、 分析 和 MOD_,找到可用空间

2、 加入ACPI模块后,计算和修改位置,这个容易出错,必须理解BIOS和内存的关系

附录:

一、BIOS文件的位置和内存位置的对应关系:

BIOS位置转内存地址,计算很简单,

前两个字节00 → FF

第3个字节 0 → E 1 → F

后5个字节不变

二、SLIC表是手动加上去的,当你再次升级BIOS时,SLIC表就没有了,需要再次破解

三、刷破解BIOS的方法:

把制作好的带 SLIC 的 BIOS 文件放到官方BIOS文件夹里面,打开 文件,找到 UpdateMode= 那行,修改为 UpdateMode=0 保存,运行 ,

点“Browse”选择“”,点“FlashBIOS”升级BIOS,如图:

升级成功并重新启动计算机以后,用 EVEREST 或 ACPIScope 查看,ACPI表已经有了。

你可以安装联想和IBM的任意版 Vista ,都可以成活成功。

注意,由于是破解的BIOS,刷BIOS也是强制刷的,所以有很大的风险 ! ! !

本文只是提供修改Phoenix BIOS的一种新的思路和方法。

笔记本很贵,不要轻易尝试刷破解的BIOS。

本人不对刷BIOS造成的任何损失负责。

2024年1月9日发(作者:臧晴丽)

联想(IBM) PhoenixBIOS增加SLIC表修改全教程

(用来激活联想和IBM的VISTA)

作者:赵亮 论坛: 网名:zhaoliang Email:zhaoliang518@

欢迎转载,但请保留上面的信息,谢谢合作 !

IBM ThinkPad NoteBook 的BIOS一直没有人修改,原因有两点:

1,BIOS 文件是压缩过的,必须解压缩参能修改。

2,60以上系列的BIOS文件是2M以上的,最新版的Phoenix BIOS Editor220 编辑工具不支持2M以上的BIOS的修改。

下面以 ThinkPad X60S 为例讲解一下研究和修改过程:

1、下载ThinkPad X60, X60s 2.12版的升级BIOS官方BIOS,

ftp:///pc/pccbbs/mobiles/

附注:发现文件名的前两个字母“7B”就是RSDT的OEMTABLEID中的字符,

X60, X60s 的RSDT的OEMID+OEMTABLEID =“LENOVOTP-7B ”(后面是3个空格)

本文为了省略,提及“OEM信息”就是“OEM ID 和OEM TABLE ID”的意思。

2、解压缩 ,运行里面的 即可正常升级。

注意升级BIOS之前,一定要电池电量在 50% 以上,一定要插上电源适配器。

3、BIOS的解压缩,感谢远景的dimsage提供BIOS解压软件“e_”。

软件是dos的,可在MSDOS窗口中运行,命令如下:

e_bcpvpw $1

就是从$1文件解压出来的,我们可以修改文件了。

4、在网友iiair的配合测试下,逐步发现IBM ThinkPad NoteBook 的BIOS 的特点。

用Phoenix BIOS Editor220打开,会提示错误,如图:

到Phoenix BIOS Editor220 安装目录下的TEMP文件夹,这里是解压的所有模块,

注意 文件和文件,这两个文件是BIOS模块的配置和记录。

文件如下:(模块在BIOS文件中的位置是从下往上的)

- Generated by BIOS Editor

2097152 Bytes (Bank Layout = 2048KB x 1) BIOS是2MB的,多出的部分是描述信息(刷BIOS必用的)

MODULE NAME C I B START END SIZE LINK1 LINK2

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

I 0 0 FFFF8000 FFFFFFFF 08000 BIOS文件的最后64K(8000h)是启动模块

X 0 0 FF1E8353 FF1EFFEF 07C9D FFFE76A8

D 0 0 FF1E76A8 FF1E8352 00CAB FFFE725D

G 0 0 FF1E725D FF1E76A7 0044B FFFE620B

MOD_ V 0 0 FF1E620B FF1E725C 01052 FFFE616E

A 0 0 FF1E616E FF1E620A 0009D FFFE6120

A 1 0 FF1E6120 FF1E616D 0004E FFFE5F29

A 2 0 FF1E5F29 FF1E611F 001F7 FFFE5EC7

A 4 0 FF1E5EC7 FF1E5F28 00062 FFFE5E81

A 5 0 FF1E5E81 FF1E5EC6 00046 FFFE5E16

A 6 0 FF1E5E16 FF1E5E80 0006B FFFE5DC9

A 7 0 FF1E5DC9 FF1E5E15 0004D FFFE5D73

A 8 0 FF1E5D73 FF1E5DC8 00056 FFFE5CFA

ACPIX是ACPI表模块,ACPI模块后的数字都是按顺序排列的(注:中间不能有空,在其它位置),

本例最大如果加ACPI模块的话,必须是

L 1 0 FF1E5CFA FF1E5D72 00079 FFFE5C4D

L 2 0 FF1E5C4D FF1E5CF9 000AD FFFE5BBE

L 3 0 FF1E5BBE FF1E5C4C 0008F FFFE5B7B

L 4 0 FF1E5B7B FF1E5BBD 00043 FFFE5B3B

L 5 0 FF1E5B3B FF1E5B7A 00040 FFFE5AB8

L 6 0 FF1E5AB8 FF1E5B3A 00083 FFFE5A2C

L 7 0 FF1E5A2C FF1E5AB7 0008C FFFE59A0

L 8 0 FF1E59A0 FF1E5A2B 0008C FFFE5915

L 9 0 FF1E5915 FF1E599F 0008B FFFE588B

L 10 0 FF1E588B FF1E5914 0008A FFFE5856

L 11 0 FF1E5856 FF1E588A 00035 FFFE57F9

L 12 0 FF1E57F9 FF1E5855 0005D FFFE50E3

L 13 0 FF1E50E3 FF1E57F8 00716 FFFE50A0

MOD_ * 0 0 FF1E50A0 FF1E50E2 00043 FFFE5050 重要,HOLE模块的设置信息,位置和大小

B 0 0 FF1E5050 FF1E509F 00050 FFFE0005 FFFB00C0

" . . . FFFB00C0 FFFB0170 000B1 FFF68ACA

" . . . FFF68ACA FFF6E188 056BF

“” 被分割成3段了,也有可能是其它模块,出现上面的情况原因是HOLE的位置是固定的,

模块写到HOLE的位置,只能跳过。也可以理解为模块被HOLE隔断了。

X 1 0 FF1E0005 FF1E504F 0504B FFFDC08D

S 0 0 FF1DC08D FF1E0004 03F78 FFFCC865

C 0 0 FF1CC865 FF1DC07F 0F81B FFFC31B4

R 0 0 FF1C31B4 FF1CC864 096B1 FFFBE9E2

R 1 0 FF1BE9E2 FF1C31B3 047D2 FFFBABCB

R 2 0 FF1BABCB FF1BE9E1 03E17 FFFB6168

E 0 0 FF1B6168 FF1BABCA 04A63 FFFB24AD

T 0 0 FF1B24AD FF1B6167 03CBB FFFB20F3

L 14 0 FF1B20F3 FF1B24AC 003BA FFFB175E

L 15 0 FF1B175E FF1B20F2 00995 FFFB1259

L 16 0 FF1B1259 FF1B175D 00505 FFFB0B1E

L 17 0 FF1B0B1E FF1B1258 0073B FFFB0454

L 18 0 FF1B0454 FF1B0B1D 006CA FFFB0256

MOD_ < 0 0 FF1B0256 FF1B0453 001FE FFFB0171

MOD_ J 0 0 FF1B0171 FF1B0255 000E5 FFFA7523 SLIC表的PUBKEY部分,被BIOS屏蔽了

M 0 0 FF1A7523 FF1AFFFF 08ADD FFF977B2

MOD_ Q 0 0 FF1977B2 FF1A7522 0FD71 FFF928EF

A 3 0 FF1928EF FF1977B1 04EC3 FFF900D4

注意看 ! 的位置,并没有和其它ACPI模块在一起,说明ACPI模块的位置没有必要按顺序排列 !!!

L 0 0 FF1900D4 FF190131 0005E FFF8FAA7

L 19 0 FF18FAA7 FF1900D3 0062D FFF8B8DF

MOD_ H 0 0 FF18B8DF FF18FAA6 041C8 FFF7B8C4

MOD_ / 0 0 FF17B8C4 FF18B8DE 1001B FFF758A9

MOD_ . 0 0 FF1758A9 FF17ACC3 0541B FFF75617

MOD_ F 0 0 FF175617 FF1758A8 00292 FFF735FC

MOD_ - 0 0 FF1735FC FF175188 01B8D FFF72AEB

MOD_ , 0 0 FF172AEB FF1735FB 00B11 FFF6E3B2

MOD_ K 0 0 FF16E3B2 FF172AEA 04739 FFF6E189

MOD_ K 1 0 FF16E189 FF16E3B1 00229 FFF5E2AE

B 1 0 FF15E2AE FF168AC9 0A81C FFF542E5

ACPI表加载的代码,一般都在 模块中,其中发现SLIC表的判断代码,不符合条件就不加载SLIC表

B 2 0 FF1542E5 FF15E2AD 09FC9 FFF4C4F5

B 3 0 FF14C4F5 FF1542E4 07DF0 FFF4A619

大部分的IBM的BIOS,ACPI表的 OEMID和OEMTABLEID 都被一段代码修改了,这段代码就在模块中,

不管原来的OEMID和OEMTABLEID 是什么,都将替换成为 中开头的 OEMID和OEMTABLEID,

本例:“LENOVOTP-7B ”

B 4 0 FF14A619 FF14C4F4 01EDC FFF42090

B 5 0 FF142090 FF14A618 08589 FFF402CB

B 6 0 FF1402CB FF14208F 01DC5 FFF20000

原来的BIOS,模块到之后,直接指向 FFF20000 ,FF1402CB 上面还有空位(注:不在HOLE的范围)

所以在上面空位上加上 ,修改 的指向为 ,

下面是改后的//////////////////////////////////////////////////////////////////////

B 6 0 FF1402CB FF14208F 01DC5 FFF4013A

A 9 0 FF14013A FF1402CA 00191 FFF20000

注:是我加进去的。 的指向为 FFF4013A ,就是新加的的位置,

又指向 FFF20000 ,这样,就是在 和MOD_ 中间插入一个

上面是改后的/////////////////////////////////////////////////////////////////////

MOD_ ? 0 0 FF120000 FF121D6A 01D6B FFFFFFF0

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

Flash Storage Information

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

ESCD FFE00000 FFE01FFF 02000

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

Fixed Location Modules Information

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

FFF10000 FFF1FFFF 10000

FFE02000 FFE2FFFF 2E000

看了一下MOD_,如下:

蓝色标识的概念还不清楚,暂且认为是HOLE的类型吧,20似乎是非压缩,

红色标识是HOLE的起始位置,淡紫色标识是HOLE的长度,

例如:00 00 F1 FF 00 00 01 00 ==〉FFF10000 10000

补齐HOLE信息如下:

FFF10000 FFF1FFFF 10000

FFF20000 FFF21FFF 2000

FFE02000 FFE2FFFF 2E000

FFFB0000 FFFB00DF C0

注意,就是预装VISTA的BIOS中SLIC表MARKER的位置,只是被加密和转码了

目前还没找到加密和转码的规律。所以还不能完美修改BIOS。

参考 用WINHEX看了一下,可以看出BIOS的大部分模块还是在后 1M里,Phoenix BIOS Editor220基本能释放大部分的模块,只有HOLE模块释放不正常。于是我把2M 的BIOS用winhex去掉一些内容,改成1M 的BIOS,不断的修改,发现了修改方法。

5、因为要手动修改BIOS,所以改动越少越简单,那么首先考虑OEMID和TABLEID,

因为RSDT、XSDT、SLIC 的 OEMID和TABLEID必须一致才行,

winhex打开文件,搜索 RSDT,如图:

看到的RSDT和XSDT的OEM信息和我们实际在WINDOWS系统中看到的不一样,

实际是“LENOVOTP-7B ”,所以在所有模块中找“LENOVOTP-7B ”,

在“”的开头位置,发现了“LENOVOTP-7B ”,

编译“”,发现有代码会修改所有ACPI表的OEM信息为“LENOVOTP-7B ”,

如果我们要修改“LENOVOTP-7B ”,那么“”模块的大小就有可能变化,

这样改BIOS太麻烦,怎么办?iiair从预装VISTA的X60KFC上备份出OEM信息为“LENOVOTP-7B ”的SLIC表,这样SLIC表的OEM信息就和 RSDT、XSDT的信息一致了,

我们就不需要改BIOSCODE3模块了。

6、制作ACPI模块,在官方的程序中,复制、 、到一个新的文件夹,改名为、,修改的内容如下:

prepare

用文本文件打开文件,修改内容如下:

COMPRESS NONE

ACPI

把OEM信息为“LENOVOTP-7B ”的SLIC表也复制到这里,执行,

得到非压缩的模块文件。

7、winhex打开,按照中的位置找到的位置,

A 8 0 FF1E5D73 FF1E5DC8 00056 FFFE5CFA

FF1E5D73在BIOS文件中的位置是1E5D73 ,如图:

哈哈,的前四个字节(红色标识)是“FFFE5CFA”,就是下一个模块的位置,

的第八个字节(蓝色标识)是“08”,就是ACPI表的数字标识。

winhex打开文件:

根据上面ACPI8 模块的定义,修改第8个字节为“09”,这个模块就变成“ACPI9”了,

ACPI9模块的长度是 191h

8、winhex打开,按照中的位置找到的位置,

B 6 0 FF1402CB FF14208F 01DC5 FFF4013A

FF1402CB在BIOS文件中的位置是1402CB ,如图:

我们看到上面的191h是空的,而且范围不在任何其他模块和HOLE中,

所以我确认这是可用空间,所以把的内容复制(CTRL+C)并覆盖(CTRL+B)到BIOS中的14013Ah处,如图:

首先修改14013Ah处,改为下一个模块的位置“FFF20000”,如图:

再修改1402CBh处,改为下一个模块ACPI9的位置14013Ah 如图:

保存修改,所有修改过程结束,是不是很简单 !

复杂的部分:

1、 分析 和 MOD_,找到可用空间

2、 加入ACPI模块后,计算和修改位置,这个容易出错,必须理解BIOS和内存的关系

附录:

一、BIOS文件的位置和内存位置的对应关系:

BIOS位置转内存地址,计算很简单,

前两个字节00 → FF

第3个字节 0 → E 1 → F

后5个字节不变

二、SLIC表是手动加上去的,当你再次升级BIOS时,SLIC表就没有了,需要再次破解

三、刷破解BIOS的方法:

把制作好的带 SLIC 的 BIOS 文件放到官方BIOS文件夹里面,打开 文件,找到 UpdateMode= 那行,修改为 UpdateMode=0 保存,运行 ,

点“Browse”选择“”,点“FlashBIOS”升级BIOS,如图:

升级成功并重新启动计算机以后,用 EVEREST 或 ACPIScope 查看,ACPI表已经有了。

你可以安装联想和IBM的任意版 Vista ,都可以成活成功。

注意,由于是破解的BIOS,刷BIOS也是强制刷的,所以有很大的风险 ! ! !

本文只是提供修改Phoenix BIOS的一种新的思路和方法。

笔记本很贵,不要轻易尝试刷破解的BIOS。

本人不对刷BIOS造成的任何损失负责。

发布评论

评论列表 (0)

  1. 暂无评论