jerry_yang
驱动牛犊
驱动牛犊
  • 注册日期2002-10-15
  • 最后登录2005-05-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1548回复:2

想写u盘启动的bios isa rom,请大家分析一下我的思路是否正确。

楼主#
更多 发布于:2004-06-29 14:03
  我的系统是一个老工控系统,bios 是award bios,现在想加入u盘启动模块。
  看了一个星期的资料,包括pnp bios specification,MBR的硬盘引导程序和DBR的分区引导程序,发现dos和win9x这样的操作系统启动的主要过程是DBR中的分区引导程序执行了io.sys,io.sys再引导msdos.sys等文件。  
  我的设计思想是这样的:先hook系统的19H号中断,就是在bios初始化完毕而操作系统还没有引导的那个时刻取得系统的控制权(这个已经被我验证可以做到) ,接下来我可以让用户选择是按照原来的启动过程还是从u盘启动,如果用户选择从u盘启动的话,那么就进入我的设计流程。
  通过分析MBR的硬盘引导程序和DBR的分区引导程序的源代码,我发现这二个程序都使用了bios中断13号来实现把dbr、io.sys读到内存,因为我开发过usb总线驱动和u盘驱动,而且这二个驱动没有使用到操作系统的功能,所以我认为这个工作我可以做到,我可以改写MBR的硬盘引导程序和DBR的分区引导程序,但是不幸的是我又查了资料,发现io.sys也用到了int 13H中断,这下麻烦大了。我想我可能要把系统的13H中断全部用u盘的读写例程hook掉,不知道这个思路是否正确的呢?
  希望大家指点一二,我对bios是非常不熟悉的,不胜感激!愿快乐!                                    
智者当借力而行
hands
驱动牛犊
驱动牛犊
  • 注册日期2001-07-11
  • 最后登录2007-12-18
  • 粉丝0
  • 关注0
  • 积分56分
  • 威望7点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-01-17 23:26
这个可能有一点帮助!
这是一个在BIOS里跑freedos的项目。

http://rayer.wz.cz/romos/romose.htm

大概看了一下,他hook了int 13h的几个功能号。


[编辑 -  1/17/05 by  hands]
w8zz
驱动小牛
驱动小牛
  • 注册日期2001-12-12
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望23点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2005-01-18 10:03
强人阿    

还要在bios里玩
小熊和二申公豹 [img]http://www.driverdevelop.com/forum/upload/w8zz/2003-08-11_黑爸.jpg[/img] 二哥,三娃儿,快帮忙!
游客

返回顶部