BIOS修改的基本原理
修改BIOS的方法有不少,比如使用16位编辑器直接修改二进制数据,或者借助专用工具调整模块、替换图片等。不同路径各有特点,这里梳理一下背后的基本原理,希望能让大家对BIOS修改的核心机制有更透彻的理解。
1. 修改Logo画面
这个很好理解——Logo图片文件必然存储在BIOS固件中,可能是压缩过的,也可能是未压缩的。具体实现方式取决于BIOS厂商(如AMI、Phoenix、Insyde、Dell等)。除非是顶尖黑客级别的玩家,能从ROM文件中进行反加密、反编译、重新解码,然后找到Logo文件并替换——这在理论上可行,但实际操作难度极大。真正可行的路径,是使用BIOS厂商提供的专用工具,例如AMI的MMTool、Phoenix的BIOS Edit等。
因此普通用户想要更换自己电脑上的开机Logo,第一步是掌握这些工具的正确使用方法,再参考社区已验证的修改流程,很快就能上手。
2. 激活操作系统
这部分主要针对OEM版本的操作系统。实际上,对微软而言,真正的“大客户”并非自己攒机的零售买家,而是Dell、Lenovo、HP这类OEM大厂。这些大厂出厂的机器通常预装正版操作系统,为了对这些系统进行激活保护,微软设计了一套名为SLP(系统锁定预激活)的方案。
从SLP 1.0到SLP 2.0,都需要BIOS提供一个经过加密的特定字符串。微软在启动时检查这个字符串——匹配成功,则认定为正版系统并自动激活。
所以要激活OEM系统,核心就是修改或添加这个特定字符串。该字符串可能隐藏在某个特定模块中,那么就可以用工具修改模块来实现;也可能直接以明文形式存放在ROM里,这时用16位编辑器直接修改即可。实现方式不止一种,社区中有大量经验可供参考。
3. 修改特定字符串
这部分基本上分为两类:一类是上面提到的修改SLP字符串,另一类是修改SMBIOS(早期称为DMI)信息。
SMBIOS规范定义了一套访问方式——即PnP Function(即插即用功能),BIOS必须实现这些访问接口,因此我们能够通过调用PnP功能来修改SMBIOS的内容。
通常BIOS厂商会提供相应的修改工具,例如DMIEdit或SMBIOS Edit。这些工具的使用方法比较简单直接,这里就不再详细展开。
