ZOL论坛 > 笔记本论坛 > ThinkPad笔记本电脑论坛 > ThinkPad E420s论坛 > E420S 破解 BIOS 白名单限制换无线网卡
返回列表
签到
手机签到经验翻倍!
快来扫一扫!

E420S 破解 BIOS 白名单限制换无线网卡

7158浏览 / 46回复

hackpasca1

hackpasca1

1
精华
1
帖子

等  级:Lv.1
经  验:183
  • Z金豆: 0

    千万礼品等你来兑哦~快点击这里兑换吧~

  • 城  市:四川
  • 注  册:2011-08-10
  • 登  录:2015-04-14
发表于 2014-03-22 04:24:41
电梯直达 确定
楼主
轻指飞扬 把此帖设为精华,作者+50经验

笔记本型号是 440134C,自带的 RTL8188CE 只有 150M,且在 Linux 下极不稳定,遂萌发了换无线网卡的念头。

但是早就知道 ThinkPad 的 BIOS 有白名单限制,于是自己研究了一下 BIOS 的程序,得出了破解白名单限制的方法。


注意:不是修改白名单,而是破除白名单限制,可以使用任意 mini PCI-E 无线网卡

机型:ThinkPad Edge E420s (440134C)

BIOS:8JET44WW (1.38 );安装程序名为 BIOS[8juj12us]


有关如何使用 PhoenixTool 对 BIOS 固件进行解包和重建的方法,请自行百度。


文章最后提供修改好的 BIOS 固件下载。


获取信息:


原装无线网卡 PCI VID=10EC DEV=8176 SUBSYS=819510EC。

我买的新无线网卡是 Atheros AR9287,其 PCI VID=168C DEV=002E SUBSYS=30A4168C。

将其插入笔记本,然后开机,得到如下错误提示:


1802: Unauthorized network card is plugged in - Power off and remove the miniPCI network card (168C/002E/168C/30A4).


System is halted


解包 BIOS:


此版本的 BIOS 文件可直接刷进 BIOS 芯片,未压缩,前 4M 为有效数据,后 260K 不知道有什么作用,但不能去掉。


运行 BIOS[8juj12us].exe,将数据解压到任意位置

使用 PhoenixTool 2.51 打开 (BIOS 文件夹)8JET44WW$0A8J000.FL1,等待解压完成。


查找白名单:


对 DUMP 文件夹下的问津进行二进制数据查找,查找内容就是原装无线网卡的 PCI VID DEV。

然后找到了两个文件:


79E0EDD7-9D1D-4F41-AE1A-F896169E5216_1549.ROM

A4F2909C-5E2A-438A-91BA-272B0923049A_2173.ROM


发现只有 79E0EDD7-9D1D-4F41-AE1A-F896169E5216_1549.ROM 包含了完整的 PCI VID DID SUBSYS 信息,也就确定这个文件包含白名单。

E420S 破解 BIOS 白名单限制换无线网卡

分析文件:


根据对此文件的格式分析,以及 BIOS 的界面内容可知,此 BIOS 为 EFI BIOS,此白名单文件实际上是一个 EFI 模块,为 64 位的 PE+ 格式,可以使用 IDA 进行分析。


使用 IDA 打开此文件,定位到偏移 270h,可以看到,此数据被 sub_B00 这个过程引用了:


E420S 破解 BIOS 白名单限制换无线网卡

定位到 sub_B00,但发现由于此模块是可重定位(Relocatable)的,大部分函数都是通过相对寻址的方式进行调用的,分析难度较大(-_-||),只能另辟蹊径。


查看字符串,可以看到之前获取的错误信息:


E420S 破解 BIOS 白名单限制换无线网卡

这些数据都在 sub_9EC 里被引用。除了上面那串文本,下面的 %04x/%04x/%04x/%04x 让我立即联想到了 C 语言的 sprintf 函数。


之前错误信息里的 168C/002E/168C/30A4 直接匹配 %04x/%04x/%04x/%04x 这个格式。这也就确定了 sub_9EC 是一个很重要的过程。


查看 sub_9EC 过程:


E420S 破解 BIOS 白名单限制换无线网卡

可以看到,有一个跳转 jl loc_AEF 直接跳过了所有的输出操作,到达过程末尾。


jl loc_AEF 前的判断指令为:


xor edi, edi

cmp rax, rdi


相当于


rdi = 0

if (rax < rdi) goto loc_AEF


即判断 rax 是否小于 0

先将此 jl loc_AEF 修改为 jmp loc_AEF 让其强行跳过错误输出。


转到 sub_9EC 被调用的地方:


E420S 破解 BIOS 白名单限制换无线网卡

可以看到 call sub_9EC 后还有一个条件跳转指令 jns short loc_D22。此指令的判断条件相当于:


if (rax >= 0) goto loc_D22


向下看,发现无论如何代码都会执行到 loc_D22 处,那么干脆把这个跳转也改成 jmp。


分析发现 sub_9EC 只在 sub_B00 中被调用,那么也就只用修改上述的那两处了。


保存修改,重建 BIOS,得到 $0A8J000_SLIC.FL1


刷新 BIOS:


为了跳过 BIOS 固件的版本和日期检查,应该使用命令参数运行 winflash.exe:


(BIOS 文件夹)winflash.exe /sv /sd (BIOS 文件夹)8JET44WW$0A8J000_SLIC.FL1


但直接这样,操作会失败,查看日志,发现时文件签名校验未通过:


[0318/202335:INFO:utils.cpp(29)]

version=10002h HeaderSize=1000h HeaderChecksum=607ah

TotalImageSize=421000h TotalImageChecksum=de49h NumberOfImages=2

[0318/202335:INFO:utils.cpp(29)]

[0]: 180000h, 280000h Bios

[0318/202335:INFO:utils.cpp(29)]

[1]: 400000h, 20000h Ec

[0318/202335:INFO:utils.cpp(29)] imageDigest fail!

[0318/202335:INFO:utils.cpp(29)]

Fail to authenticate image!

[0318/202335:INFO:utils.cpp(29)] Fail to authenticate image!

Fail: UNSUPPORTED!

[0318/202335:INFO:utils.cpp(29)]

winflash.exe end at [2014-03-18 20:23:35].

[0318/202335:INFO:phlashdlg.cpp(567)] PFAE return 28675


这里需要破解 environment.dll 以绕过校验检查:


E420S 破解 BIOS 白名单限制换无线网卡

使用 OllyDbg 将 1001859A 的 je 改为 jmp;将 100185B8 的 jnz 改为 jmp。保存修改。


重新运行 winflash.exe,顺利地刷入了修改后的 BIOS 固件。


测试:


将新无线网卡插入笔记本,开机,一切顺利:


E420S 破解 BIOS 白名单限制换无线网卡

附件:


修改好的 BIOS 固件、打过补丁的 environment.dll:

e420s_440134c_bios_whitelist.zip

评分:+Z金豆 15  已有 2人参与评分

wznsh

wznsh


精华

帖子

等  级:Lv.9
经  验:52257
发表于 2014-03-23 10:26:08 1楼
这个 有难度 看不明白的不要随便尝试

轻指飞扬

轻指飞扬


精华

帖子

等  级:Lv.9
经  验:85485
发表于 2014-03-24 17:45:28 2楼
高端~小白,还是别轻易尝试哈

truelistzol

truelistzol


精华

帖子

等  级:Lv.2
经  验:385
发表于 2014-03-24 20:01:29 3楼

清流的紫水晶

清流的紫水晶


精华

帖子

等  级:Lv.5
经  验:4639
发表于 2014-03-24 21:18:07 4楼
楼主你这是在教我们干坏事么

九间网

九间网


精华

帖子

等  级:Lv.3
经  验:1423
发表于 2014-03-24 22:53:43 5楼

suoks

suoks


精华

帖子

等  级:Lv.2
经  验:482
发表于 2014-03-25 17:18:59 6楼

我想想

我想想


精华

帖子

等  级:Lv.2
经  验:458
发表于 2014-03-25 17:54:53 7楼

极限小白

极限小白


精华

帖子

等  级:Lv.4
经  验:2390
发表于 2014-03-25 20:34:11 8楼
帮顶,但是看不懂哎

beixiao123

beixiao123


精华

帖子

等  级:Lv.4
经  验:1641
发表于 2014-03-25 22:16:04 9楼
为啥不换个intel网卡

我姓魏,我欣...

我姓魏,我欣慰


精华

帖子

等  级:Lv.3
经  验:875
发表于 2014-03-26 18:39:00 10楼

hackpasca1

hackpasca1


精华

帖子

等  级:Lv.1
经  验:183
发表于 2014-03-26 19:28:44 11楼

beixiao123 发表于 2014-03-25 22:16:04

为啥不换个intel的网卡?

之前改路由,觉得ar9287不错,而且在linux下有完善的驱动支持

阳光elontesl...

阳光elontesla


精华

帖子

等  级:Lv.1
经  验:10
发表于 2014-03-26 23:11:12 12楼
真的看不太明白,联想3000g430能用通用的破解布丁吗

云中天眼

云中天眼


精华

帖子

等  级:Lv.3
经  验:1304
发表于 2014-03-27 00:28:47 13楼

伍迪

伍迪


精华

帖子

等  级:Lv.1
经  验:29
发表于 2014-03-27 11:52:11 14楼

半根棒棒糖

半根棒棒糖


精华

帖子

等  级:Lv.3
经  验:1009
发表于 2014-03-27 11:55:26 15楼

hackpasca1

hackpasca1


精华

帖子

等  级:Lv.1
经  验:183
发表于 2014-03-27 19:37:31 16楼

阳光elontesla 发表于 2014-03-26 23:11:12

真的看不太明白,联想3000g430能用通用的破解布丁吗

因为是逆向分析出来的嘛。。难度肯定比直接添加白名单大

yinghua2008

yinghua2008


精华

帖子

等  级:Lv.4
经  验:1620
发表于 2014-04-03 10:15:09 17楼
不明觉厉。。。

open8528

open8528


精华

帖子

等  级:Lv.1
经  验:226
发表于 2014-04-03 11:41:00 18楼
看不懂,只有崇拜的份.

潇湘宇蝶

潇湘宇蝶


精华

帖子

等  级:Lv.2
经  验:293
发表于 2014-04-03 13:10:24 19楼

21x3

21x3


精华

帖子

等  级:Lv.4
经  验:2257
发表于 2014-04-03 17:19:55 20楼
点击查看更多精彩回复>>
去第 确定
支持键盘翻页 ( 左右 ) 
论坛精选大家都在看24小时热帖7天热帖大家都在问

针对ZOL论坛您有任何使用问题和建议 您可以 联系论坛管理员查看帮助  或  给我提意见

快捷回复 看沙发 返回列表