标题: 关于代码存放地址
[打印本页]
作者: nhchmg
时间: 2008-11-9 07:23
标题: 关于代码存放地址
请问一代码运行在MBR之前,是通过PXE下载过来的,这段代码是HOOK一个中断,然后就读MBR,把控制权交给MBR,MBR会启动XP,请问这段代码该放在什么地方,才可以保证XP启动了,但仍然不会被覆盖,有点像grubdos
我曾试过把这段代码放在常规内存,然后用int 12去减少报告内存数,但是在运行NTLDR后,这段代码会失效.
[
Last edited by nhchmg on 2008-11-9 at 07:25 ]
作者: netwinxp
时间: 2008-11-9 11:17
在MBR之前运行那只能在BIOS了(比较安全的就是放到网卡上),XP并不使用实模式的BIOS中断,所以挂接BIOS中断对XP不起作用。
作者: nhchmg
时间: 2008-11-9 17:24
Quote: |
Originally posted by netwinxp at 2008-11-9 11:17:
在MBR之前运行那只能在BIOS了(比较安全的就是放到网卡上),XP并不使用实模式的BIOS中断,所以挂接BIOS中断对XP不起作用。 |
|
我是能过pxe下载过来的,我所说的存放位置是指地址,我现在放的地址是9000:100,但不知道什么原因,会有问题.另外我挂接的是int 13,就是XP也会用的,就是像无盘引导一样
作者: crazii
时间: 2008-11-11 14:01
"我现在放的地址是9000:100" 貌似在1M之内啊.
"然后用int 12去减少报告内存数" int 12h好像只能查询啊.你把int12h替换了?
作者: netwinxp
时间: 2008-11-12 05:14
Quote: |
Originally posted by nhchmg at 2008-11-9 17:24:
我是能过pxe下载过来的,我所说的存放位置是指地址,我现在放的地址是9000:100,但不知道什么原因,会有问题.另外我挂接的是int 13,就是XP也会用的,就是像无盘引导一样 |
|
NT内核的windows,仅仅在启动的最前面几个步骤使用INT 13H,进入OSLOADER以后就使用磁盘驱动而不会再去使用实模式的INT 13H了。