无忧启动论坛

标题: 恐怖:BTBIOS,U盘CHS爆掉1024,竟然还能“越界”访问! [打印本页]

作者: sunsea    时间: 2012-6-26 20:28
标题: 恐怖:BTBIOS,U盘CHS爆掉1024,竟然还能“越界”访问!
RT
ubootchk检查固件CHS为:971/128/63
4G的宇瞻U盘
AwardBIOS
2003年
实际geometry检查为:FD0,CHS=243986/2/16,只支持CHS,总扇区数7807552
肯定把1024/255/63爆掉了
测算过发现只能访问16M内的数据
但是
我找个肯定“越界”的文件访问了一下
竟然能正常读!
太恐怖了!
(那个U盘被借走了,前几天测试的时候用的是HDD,这BIOS不认没办法起,可是这U盘里又有重要数据,不想格,所以用的硬盘上0.4.4)








作者: 不点    时间: 2012-6-27 11:10
自己吓唬自己。

1. 拿一个好几年前的充满 bug 的 grub4dos 版本来说事,本身就存在可信度问题。(关键是这一条)

2. 看到 cat 命令中有一个语法错误:“(fd0)24396空格+1” 在加号前插入了多余的空格。

3. 算算扇区号 24396 起始于多少 M:大约在 12M 处,在 16M 范围之内。

4. 读取大扇区号时有数据显示,不等于这些数据是正确的。有可能显示的是被折叠的 16M 以内的某个扇区的数据。就是说,这些可能是无效数据。
作者: sunsea    时间: 2012-6-27 15:49
这回强制成HDD
然后U起
检查了一下
最新版的G4D
顺便拍了几张照片





最后一张是U盘MBR
可以拿去检查用
作者: 不点    时间: 2012-6-27 16:58
这次识别为硬盘,而且支持 LBA 模式的磁盘访问,什么事情都没有了。

你的 MBR 含有 BPB 表。而且 BPB 表中的 S=60,H=200 都是不常见的值,感觉是故意添乱。我的意思是,你所用的软件,有故意添乱的嫌疑,它在 BPB 表上生成了不太正常的 H 和 S 值。

经过 --tune 之后,grub4dos 成功发现了正确的 H=255,S=63。不过,由于支持 LBA,这些 CHS 值在 grub 环境下是永远不起作用的。待到 geometry --sync 之后,可以让 DOS 利用正确的 CHS 值从而成功启动 DOS。
作者: sunsea    时间: 2012-6-27 19:25
原帖由 不点 于 2012-6-27 16:58 发表
这次识别为硬盘,而且支持 LBA 模式的磁盘访问,什么事情都没有了。

你的 MBR 含有 BPB 表。而且 BPB 表中的 S=60,H=200 都是不常见的值,感觉是故意添乱。我的意思是,你所用的软件,有故意添乱的嫌疑, ...


但是那个5/2/16的值看着有点胆寒……
还好有LBA
这会发现了
这款BIOS:
ZIP下
CHS有时正常有时不正常
强制成HDD:
原本CHS的变成LBA了
但检查到的值变得极端不正常
例如像5/2/16那样极端恐怖的值

结论:
这款主板比较“神奇”
ZIP下
CHS有时正常有时不正常
强制成HDD后
竟然神奇的支持了LBA
但是会胡乱返回CHS
好神奇!
作者: 不点    时间: 2012-6-27 20:41
在支持 LBA 的情况下,chs=5/2/16 这样的“恐怖” 值,只对 DOS 有影响。

当 LBA 被 bios 支持时,grub4dos 并不试图精细探测真实的 chs 值,一般只是简单采纳 int13/ah=8 的返回值就当作 chs 的值了。此时,需要用 --tune 才探测真实的 chs 值。

那些严重依赖 int13/ah=8 的软件,必然遇到无法启动的难题。因为此时 bios 的 int13/ah=8 所返回的是不正确的值。我个人一直都认为这是故意干的,是恶意攻击,目标大致是针对开源的软件,但某些闭源软件也可能受到影响。但也有人认为不是故意干的,请随便,各自都请坚持自己的。谁能说服别人,那就要看他的造化了。相信谁,那是每个人自己的事。真理在你自己手里攥着,谁也夺不去。




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3