diskedit(dos下的磁盘编辑工具)的写硬盘扇区的方式是什么?
我估计是利用中断13,因为我使用的版本最大只能看到8G的硬盘扇区。
可是我觉得又不完全正确,希望有研究的朋友指点。
问题点数:5、回复次数:8Top
1 楼zara(Kyrie eleison)回复于 2006-03-28 10:57:25 得分 0
只能看到 8G 的硬盘? 那可能是比较早期的软件, 采用的是 CHS 方式的 int13h 来进行的. 即使是采用 int13h, 使用扩展的读写功能, 是可以访问任意大小的Top
2 楼zhgwbzhd()回复于 2006-03-28 11:24:49 得分 0
是呀,我也这么认为的,可是我觉得不可思议的是,因为机器安装了还原卡,使用他就可以把MBR的内容覆盖成其他的内容,虽然重新启动之后就给还原了。可是我使用int13的3号功能直接写MBR,就写不成功。不知为什么。Top
3 楼DelphiGuy()回复于 2006-03-28 12:57:32 得分 0
那是因为还原卡的ROM在BOOT的时候把原来的INT 13替换了。
你调用INT 13的时候,还原卡的软件可以决定执行还是不执行。
Top
4 楼zhgwbzhd()回复于 2006-03-28 14:47:51 得分 0
那还原卡还能那么智能的判断,使我调用的int13还是diskedit调用的int13?所以说我认为diskedit可能也调用int13,但是那可能还使用了什么其他的手段,使当时有效了。Top
5 楼DelphiGuy()回复于 2006-03-28 16:31:31 得分 0
1. diskedit支持raw模式,可以直接通过端口访问IDE,证据就是在系统中没列出来的硬盘它也能发现。
2. INT 40h是BIOS的原始INT 13h入口(如果没被修改的话)。
Top
6 楼zhgwbzhd()回复于 2006-03-28 17:12:08 得分 0
可是我认为,diskedit没有使用io对硬盘进行写,因为我是用io对硬盘写,还原卡是不起作用的。但是diskedit写硬盘,是可以被还原的。所以推测是通过int13写的。但是我调用了int13对硬盘写,又不能直接显示出来,单diskedit确又能显示出来,有点迷惑。Top
7 楼DelphiGuy()回复于 2006-03-28 18:45:07 得分 5
对。
diskedit正常情况下是不使用直接磁盘I/O的,要进入之后选中Advanced Recovery Mode才行。
也许diskedit使用了INT 25h和INT 26h?
你试试diskedit /m能不能被还原。
Top
8 楼zhgwbzhd()回复于 2006-03-28 22:27:39 得分 0
算了,方正用着挺怪的,在某种情况下,diskedit又不能写回去(当时看是没有被修改),有些时候就可以写回去(当时看是被修改了)。不弄了。Top




