

BIOS病毒可行性讨论
BIOS病毒可行论
(转的,不知道好不好使,我没看)
记得本 BBS的病毒版上曾有人提到过在BIOS里植入病毒。当时虽然认为它是一种新想法,但是诸多方面都不成熟。例
如在软件上,BIOS中代码和数据的安排无一定之规,所以病毒代码就找不到合适的位置存放;硬件上BIOS ROM是不可改写
的,至少FLASH BIOS是可以人为控制禁止写入的,消除了病毒感染的可能性。所以关于BIOS病毒的讨论就被搁置一旁了。
最近研究了下BIOS,这个很古老而少有人感兴趣的东东。其结果却令偶吃了一惊,从新的BIOS结构上看,BIOS病毒不仅仅
是个猜想,现在简直是唾手可得的了。下面从软、硬件两个角度阐述下结果:
I.Software portion:
我研究的BIOS是最普遍应用的AWARD BIOS,Pentium机以上几乎没有例外的。其它的BIOS例如AMI的,也许不是这样,
但是由于应用面已经很少了,不与考虑。AWARD BIOS的复杂程度已经超过了传统BIOS的概念,可粗分为4个部分:
1.BOOT BIOS。这部分完成传统BIOS的工作,但是是简化版的,仅仅负责极其初等的CPU周边的初始化工作,在屏幕上
没有任何提示。然后就调用第二部分:
2.Decompression BIOS。听了这个名字感到诧异吧,BIOS居然有解压缩功能!没错,BIOS里有很独立的一小块,大约
4K,是个小UNZIP。不过算法不是ZIP的,是另外一种。不过其压缩比却很高,超过了ZIP的压缩能力。DecompressionBIOS
负责把第三部分解压缩出来。
3.Compressed BIOS。这才是BIOS的主体,大小约64K左右吧,BIOS版本越高体积越大。解压缩后前半部分整整128K是
实际使用的Main BIOS,后半部分32K是NCR SCSI BIOS。BOOT BIOS调用 Decompression BIOS解出Main BIOS后就把控制权
交给它,这以后使用者才能在屏幕上看见 Video BIOS的标记、AWARD BIOS的版权信息、EPA的符号、内存检查等等一系列
的后续现象。
4.Free Space。BOOT BIOS和Decompress BIOS位于BIOS存储器的尾部,Compressed BIOS从存储器的头部开始。 在二
者之间则是广阔的Free Space,一般都填成FF,这段空间大小可达32K左右! 这么大的空间可以放个很不错的宝贝儿了。
如果考虑调用Decompression BIOS的解压缩功能的话,放个64K的东东不成问题。病毒带个GUI如何?
BIOS中BOOT BIOS一定起始于FE000h,Decompression BIOS一定起始于FB000h。BOOT BIOS没有任何自校验,做了修改
不会被发现。Decompression BIOS有很简单的Checksum,搞颠它简直是小菜。病毒取得控制权可以通过修改BOOTBIOS完成,
这最简单。要麻烦点呢,就改Decompress BIOS吧。
Hardware portion:
如果BIOS是ROM做的,只能看不能改,那么病毒还是没有可乘之机。所"幸"的是有FLASH BIOS。但是对 FLASH BIOS还
有一关就是可以跳线禁止写入。更"幸"的是,对新近广泛使用的29EE010之类的新FLASH BIOS,其编程电压Vpp = 0。所以
这个跳线就成了聋子的耳朵--摆设。不信去试试看,对ASUS之类的主板,(用Winbond 或 SST的EEPROM作BIOS片子的)不
用改跳线直接使用pflash更新BIOS,包你成功。
有了Software和Hardware双方面的保证,BIOS病毒完全可以实现了。不过我发表这篇可是为了提醒主板厂家赶快采取
防范措施的呦。
[ 本帖最后由 地狱幽灵 于 2007-3-6 08:02 编辑 ]