首页
社区
课程
招聘
[分享]LPT接口刷写主板BIOS芯片
发表于: 2011-9-14 16:35 28318

[分享]LPT接口刷写主板BIOS芯片

2011-9-14 16:35
28318

本文介绍了用LPT接口实现SPI编程器的功能,适用于BIOS修复、BIOS调试开发等用途。

先说一下故事背景。

SerialICE项目(34cK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4y4W2M7X3W2S2L8r3W2U0k6g2)9J5k6h3y4G2L8g2)9J5c8W2)9J5z5g2!0q4y4g2)9&6b7#2!0m8z5q4!0q4y4#2!0n7x3#2!0n7b7W2!0q4y4#2!0n7b7W2)9&6c8V1u0u0e0#2y4Q4c8e0g2Q4z5e0m8Q4b7f1k6Q4c8e0g2Q4z5p5q4Q4b7e0S2Q4c8e0g2Q4z5o6S2Q4z5f1c8Q4c8e0k6Q4z5f1y4Q4z5f1k6Q4c8e0g2Q4z5p5c8Q4b7U0y4Q4c8e0k6Q4z5p5g2Q4b7e0g2Q4c8e0N6Q4b7f1g2Q4b7e0q4b7M7X3!0U0k6i4y4K6L8%4u0Q4c8f1k6Q4b7V1y4Q4z5p5y4Q4c8e0c8Q4b7V1c8Q4b7V1k6Q4c8e0N6Q4z5e0c8Q4b7e0S2Q4c8e0k6Q4z5e0c8Q4b7U0W2Q4c8e0N6Q4b7V1y4Q4z5e0k6Q4c8e0N6Q4z5f1q4Q4z5o6c8c8c8f1#2g2i4@1f1#2i4@1u0o6i4K6V1#2i4@1f1$3i4K6V1K6i4K6S2q4i4@1f1@1i4@1u0n7i4@1p5#2i4@1f1$3i4@1p5^5i4@1p5I4i4@1f1$3i4K6S2n7i4K6W2r3i4@1f1$3i4K6V1$3i4@1t1&6i4@1f1#2i4@1u0o6i4K6S2r3i4@1f1@1i4@1u0n7i4K6S2n7i4@1f1#2i4K6R3#2i4@1p5#2i4@1f1#2i4K6V1H3i4K6S2q4i4@1f1%4i4@1u0n7i4@1q4p5i4@1f1$3i4K6S2o6i4K6R3%4i4@1f1@1i4@1u0n7i4@1p5@1i4@1f1%4i4K6W2m8i4K6R3@1i4@1f1$3i4K6R3&6i4@1p5%4i4@1f1^5i4@1p5I4i4K6S2o6i4@1g2r3i4@1u0o6i4K6S2o6i4@1f1@1i4@1u0n7i4K6S2q4i4@1f1^5i4K6R3H3i4K6S2o6i4@1f1#2i4@1q4q4i4K6W2q4i4@1f1%4i4K6S2q4i4@1t1H3i4@1f1%4i4@1p5I4i4@1q4o6i4@1f1@1i4@1u0n7i4@1t1$3d9f1y4q4i4@1f1%4i4K6W2m8i4K6R3@1i4@1f1^5i4@1t1H3i4K6R3K6i4@1f1^5i4@1q4r3i4K6V1#2i4@1f1#2i4K6S2m8i4K6W2r3i4@1f1^5i4K6R3K6i4@1u0p5i4@1f1K6i4K6R3H3i4K6R3J5
沿用SerialICE的思路,本人已成功将手上的华硕P5k-e+Intel Q6600改造成(非完美的)硬件调试器。这种的调试器比bochs调时器支持的硬件广泛,bochs需要为每一种外部设备编写代码模拟,bochs至今仍不支持1394接口,bochs的显卡过于老旧,根本无法运行DirectX9/10的代码。另外显示卡、以太网卡等外围部件不需要软件模拟,执行速度比bochs快很多。

为了开发这个项目,需要反复折腾BIOS ROM,官方的刷写工具只能在系统正常的时候使用,调试期间经常把BIOS刷死,因此必须另想办法。现在的PC主机板BIOS ROM芯片一般都采用SPI接口,SPI协议引脚少,实现简单。通常在ROM旁边有一个7针的外部编程接口,如下图所示。


老旧电脑的LPT接口配以合适的程序,能实现诸如SPI、JTAG等很多功能,除了速度稍慢。LPT的DB25插头引脚定义如下图。

捷克的Rayer利用LPT实现了SPI的接口编程(4bfK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4u0S2P5h3g2J5i4K6u0W2K9h3y4Q4x3X3g2U0P5W2)9J5c8X3g2D9k6h3E0@1M7X3!0Q4x3V1k6K6M7r3W2H3k6$3#2Q4x3X3g2Z5N6r3#2Q4x3U0W2Q4c8e0y4Q4z5o6m8Q4z5o6u0Q4c8e0k6Q4z5p5g2Q4b7e0g2Q4c8e0N6Q4b7V1q4Q4b7V1k6Q4c8e0g2Q4z5f1u0Q4b7V1g2Q4c8e0g2Q4b7e0k6Q4z5o6u0Q4c8e0c8Q4b7U0S2Q4z5p5u0Q4c8e0g2Q4z5f1u0Q4b7V1g2Q4c8e0k6Q4z5o6W2Q4z5o6m8Q4c8e0N6Q4b7e0c8Q4b7V1q4Q4c8e0y4Q4z5o6m8Q4z5o6t1`.

找一个IDE硬盘或软驱的接头,砍下一部分并附带接线,与LPT的DB25插头按下表连接。


3.3V电源可取自本机ATX电源(桔黄色就是+3.3V)或另外的备用电源。由于SPI EEPROM数字电路芯片的瞬态电流比较大,需要在3.3V电源Vcc脚与GND之间接不小于1000uF的电容(耐压6V以上),Rayer电路中的150欧姆电阻可有可无。最后制成的电缆类似下图。


Rayer在网站上提供了一个SPI编程工具(SPIPGM),但是这个工具适用的芯片范围很窄。

flashrom项目(6f7K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3k6D9j5i4y4Z5M7X3!0E0i4K6u0W2L8%4u0Y4i4K6t1&6i4@1f1$3i4K6S2r3i4K6V1H3i4@1f1@1i4@1u0q4i4K6W2n7i4@1f1@1i4@1u0m8i4K6R3$3i4@1f1#2i4@1q4r3i4@1t1&6i4@1f1$3i4K6W2n7i4@1t1@1i4@1f1#2i4@1p5@1i4K6W2m8i4@1f1^5i4K6S2m8i4@1q4r3i4@1f1%4i4K6R3&6i4K6R3%4i4@1f1%4i4K6W2m8i4K6R3@1i4@1f1$3i4K6V1@1i4@1q4r3i4@1f1$3i4K6S2o6i4K6R3I4i4@1f1K6i4K6R3H3i4K6R3J5

电缆连接正确,电源接通后
运行flashrom -p rayer_spi即显示侦侧出的SPI EEPROM的型号;
运行flashrom -r bios.rom -p rayer_spi可以dump出EEPROM;
运行flashrom -w bios.rom -p rayer_spi可以写入EEPROM。

有了这个几乎免费的ROM芯片编程器,就可以随心所欲,毫无顾忌的修改BIOS了。预掌握Processor,必先掌握BIOS。


[培训]科锐逆向工程师培训第53期2025年7月8日开班!

上传的附件:
收藏
免费 6
支持
分享
最新回复 (21)
雪    币: 27
活跃值: (127)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
2
很感兴趣,哪里能找到更多学习资料?
2011-9-14 18:01
0
雪    币: 316
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
了解下.谢谢分享..
mark!
2011-9-14 19:54
0
雪    币: 475
活跃值: (74)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
支持啊,编程器的钱能省下来了
2011-9-14 22:01
0
雪    币: 149
活跃值: (754)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
请详细介绍一下将主板改成硬件调试器的过程吧!
"使用改编的QEMU引擎以模拟方式介入后续指令的执行,从而实现硬件ICE的调试功能"这倒是个不错的思路.
另外,Intel现在开放的BLDK(一个bootloader,用于在嵌入式应用中替代BIOS,不过好像现在只能用于Atom E6xx和5xx, 能启动Linux等,但Windows启动不了)好像开机运行少许指令就可以进行调试(当然需要第2台调试主机).

其实我一直在想,为什么没有公司实现面向桌面的裸机虚拟化,性能肯定比现在基本OS上的虚拟化高不少.
2011-9-14 22:50
0
雪    币: 8833
活跃值: (2419)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
6
终于有人改成功了~热烈庆祝,求楼主分享经验~
2011-9-14 23:00
0
雪    币: 451
活跃值: (78)
能力值: ( LV12,RANK:470 )
在线值:
发帖
回帖
粉丝
7
支持,修改方法看起来不错
可惜偶的台式机比较老,不想改了,
2011-9-15 13:01
0
雪    币: 22
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
楼主强大,支持
2011-9-15 22:32
0
雪    币: 241
活跃值: (67)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
找太不用的机器试试
2011-9-16 14:37
0
雪    币: 169
活跃值: (57)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
很感兴趣, 楼主强人啊
2011-9-16 14:45
0
雪    币: 237
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
这个牛!!!真想自己也整个!!
2011-9-16 15:22
0
雪    币: 237
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
不错,再慢也比串口快吧。
2011-9-18 15:38
0
雪    币: 41
活跃值: (244)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
13
mark .bios 调试不用老拔芯片了···
2011-9-20 01:08
0
雪    币: 382
活跃值: (442)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
14
这个好玩.强烈要求分享经验
2011-9-20 01:15
0
雪    币: 244
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
太让人期待了。
2011-9-20 16:25
0
雪    币: 4560
活跃值: (1037)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
16
太牛了,不顶不行啊
2011-9-20 16:31
0
雪    币: 4911
活跃值: (155)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
膜拜下强人。。。
2011-9-21 14:53
0
雪    币: 121
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
这个都是手工制作……
2011-9-21 18:38
0
雪    币: 220
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
偶对硬件调试器很感兴趣 呵呵
2011-9-23 14:05
0
雪    币: 559
活跃值: (349)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
这个的顶下收下!!BIOS 有点像 EEPROM
2011-9-25 22:19
0
雪    币: 219
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
谢谢分享经验。
2011-10-28 16:26
0
雪    币: 483
活跃值: (162)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
COOL ,

楼主当年 幻影 不是就是用硬件调试器 脱掉的么
2011-10-29 05:40
0
游客
登录 | 注册 方可回帖
返回