Board logo

标题: 哪位朋友研究过再次引导计算机启动? [打印本页]

作者: zhgwbzhd     时间: 2007-6-18 00:36    标题: 哪位朋友研究过再次引导计算机启动?

比如先让计算机启动到自己的OS,在这里里面有控制界面。输入密码正确之后,再让计算机启动到自己的操作系统。
原来俺使用int19,但是再很多机器上都不能使用。死机呀。
不知道有没有其他的什么更好的办法呀!
作者: zhgwbzhd     时间: 2007-6-18 22:24
高手呀,指点一下吧。
作者: AlexZhang     时间: 2007-6-27 18:27
这就是相当于GDLDR LILO之类的东西 可以参考Aero实现。反汇编一下
作者: netwinxp     时间: 2007-7-25 19:50
  如果在实模式下,而又没有其他TSR程序(或者说中断向量表没被修改过),可以通过INT19H重新载入MBR启动,或者用GRUB载入其他系统,如果中断向量表被改过则很有可能死机,你只好通过JMP FAR FFFF:0000完全重新启动。
  在保护模式下,由于内存访问模式不再是段:偏移量,而是平坦模式,上述可能无效或导致不可预知的后果。
作者: zhgwbzhd     时间: 2007-7-26 16:37
在实模式下,我是不是可以先把中断向量表保存到其他位置,在准备重启时,
把中断向量表恢复一下,之后把MBR读到7c00处,再跳到7c00处执行。
也就是模拟一下刚刚启动的时刻。

不过,可惜的是,恢复中断向量表时就死机了。
不知道哪位高手告诉俺可能的原因在哪里呢??

十万个敬意送给你们呀!
作者: netwinxp     时间: 2007-7-26 18:44
把MBR读到7c00处,已经覆盖了DOS重要的数据区,然后你又恢复了DOS一大堆中断,不死机才怪呢!中断向量只是一个指针,它指向的内容很多都被破坏了,你再恢复它有啥用?想弄开机密码你可以用BIOS密码,也可以用GRLDR内置密码,你这样到处乱改重要内存区的内容不是故意整死机吗?
作者: zhgwbzhd     时间: 2007-7-26 23:18
首先是可以读MBR到7c00处的,这个时候不会引起死机。
就是在恢复中断向量表时,死机。
我猜测的原因是,可能DOS用到了他的一些中断,我在恢复时造成他们死机。

可是我怎么才可以不引起它死机呢??
作者: netwinxp     时间: 2007-7-27 01:25
你处理方法就有点象只备份分区表,切把整个硬盘的内容全清除了,你说这种情况,你即使恢复分区表能启动吗?你酱紫想不死机基本上不太可能。对于有TSR驻留(特别是挂接键盘、定时中断的程序)的情况下,用GRUB重新载入系统都会死机。
作者: netwinxp     时间: 2007-7-27 01:30
另外,你一乱修改中断向量表,不要说是调用DOS了,定时中断及一些挂在定时中断上的DOS中断马上就飞了。建议你多看看TSR的编写及DOS的内存调度机制这些方面的资料。

[ Last edited by netwinxp on 2007-7-27 at 01:36 AM ]
作者: zhgwbzhd     时间: 2007-7-28 01:13
谢谢呀,我现在正在学习这个方面呢。所以呢还是确实有很多不了解的地方。
不过还是谢谢了。