打完游戏结算就这样了?以前没有 最近这两天股市怎么了特别频繁这是怎么了???

为什么我一进CF就显示游戏异常,后面是0x00000fc..很多0,以前不这样的.版本更新后就这样了,也没下什么软件。
为什么cf进游戏里就黑屏 看的到贴图就看不到人- _星空游戏网
你的位置:&
为什么cf进游戏里就黑屏 看的到贴图就看不到人
为什么cf进游戏里就黑屏 看的到贴图就看不到人
来自:游戏爱好者&&&&&更新日期:日
你先卸载CF 重新下载 我原来也是这样的
有可能卡了,或者您的电脑不适合那么大的游戏
显卡问题,你去买个好点显卡吧
cf进游戏为什么玩的时候变成旧版的了:答:可能是内存不足导致的,你可以到cf中设置,视图效果看看有没有设置好
为什么我的CF进游戏会黑屏然后才开始游戏:答:...我也是....我换了个显卡好了好多....应该是腾讯问题.......给个赞啊.帅哥
cf为什么进不去游戏里:答:卡了 或者 正在维护
cf为什么进不去游戏房间里一进就黑屏:答:你好楼主,更新完cf2.0后都是这样。需要进游戏以后在设置里把画面分辨率改成就可以 给下采纳~谢谢~...
为什么我家的cf进房间后加入游戏时那个进度很慢 :答:应该是你的电脑配置有点out了,现在的游戏都是更新的越来越大,对电脑要求提高了,所以你的电脑就会很卡,建议你更新你电脑的配置就可以了...
为什么一进cf游戏房间就黑屏:答:现在这个官网有解释,目前解决方法是把游戏分辨率设置就不会黑
为什么我进cf游戏会黑屏 看不见枪 只有小地图才:答:电脑配置的问题~介意换显卡~求采纳~
cf为什么进入游戏会黑屏:答:开启后 从从新系统 , 32位XP 就是最好的
为什么CF进游戏时总是说与主机连接延迟:答:这个就是网络问题~~汗~~正常的啦!我以前拉宽带也是,下载速度有220KB,算不错了吧!但是玩就是会卡,... 要不然台式玩不了CF...
为什么我家CF一进游戏选择频道就退出桌面了:答:游戏文件损坏了,需要重装
文摘内容来自网友交流,仅供参考,不表示本站同意或赞成其观点,对其准确性和真实性不作任何的担保。
联系方式请用电邮
Copyright & 2014为什么现在CF里VE用不了啊 我把VE进程隐藏了 一进CF后显示您违反了协议规定 客户端文件已被没收 请用您的诚信来换取游戏文件. 这到底是咋回事啊郁闷唉
为什么现在CF里VE用不了啊 我把VE进程隐藏了 一进CF后显示您违反了协议规定 客户端文件已被没收 请用您的诚信来换取游戏文件. 这到底是咋回事啊郁闷唉 10
隐藏VE内核就不会了
对 我以前也是一直用的 但现在不行了.
是VE本身自带的内核隐藏么?还有,你是网吧用户还是家庭用户
是VE自带的内核隐藏模式 我其实网吧里只要有驱动还不是可以和家里一样开VE 我上的网吧几乎都有驱动 VE也可以用 但就是老是被游戏TP系统检测到..
我在家里可以一直用,不被监测,到网吧就不行了。还有,被检测了一次就重启,不然后面登入都是非法,如果你实在用不了,就用MHS吧!
安全检测未通过
但我把进程隐藏了啊 和以前做的都是一样 但现在就是开不了VE了 反正是一切关于驱动的软件挂在机子上进CF都会这么显示..
官方为了不让像我们这样的人刷点,把安全检测那一快做的比较强大,我的想法是下载以前的老版本,把那里面的安全检测模块替换掉新的。我这几在研究这个东西,我们可以探讨一下。。
把替换掉进CF应该进不去 就像把rez文件夹里rb001.rez这个文件托出来一样 ..CF游件夹里的一些重要文件被删除或替换的话 一进游戏就会弹出对话框 然后接着就是自动退出游戏 所以你这办法是行不通的 还是得靠才行.
其他回答 (4)
兄弟CF点是不能刷的 说会刷的全是骗子
要是CF点能刷腾讯靠什么赚钱?
虽然不知道你回答的什么 但我告诉你 你的头脑很简单 你自己人蠢了不会刷就别乱叫ok? 你知不知道封包这玩意可以代替客户端骗过服务端..不知道就说明你什么都不懂 你可以滚了.
这自慰挂...我给你一个东西,防第三方非法的, QQ: .采纳
是隐藏进程工具吗?
封包是可以 但是只能卡一些没什么用的东西 而且很易封号
所有的道具都可以啊 还有为什么我发封包一直都没事啊..
你牛b 你还什么都能卡
早在1.34的时候武器全被和谐了 能卡的都只有角色装扮 你还什么都能卡
算了 哥告诉你 防火墙
相关知识等待您来回答
穿越火线领域专家酷勤网 C 程序员的那点事!
浏览次数:次
作者:betatoy
接|unix/unix&like的|西已有一段rg了,&在一台C器上b多系y是避免不了的.&有r候常被bootloader弄得很苦.&如果你在安b系y或者lilo的r候不小心x皴e了,&系yg的bootloader常相互覆w.&\所周知,&在unix/unix&like世界Y]有l能y治l.&於是我就在想能不能找到一为的,&c系yoP的bootloader,&@|西的作用只是在mbr中硪渌到y自己的bootloader些且不需要向grub那佑泻芏嗟墓δ.&不知道我的想法是不是很愚蠢
&独孤九贱 回复于: 09:30:06
不太明白,bootloader好像本身就与系统无关吧?我想你的问题主要还是对这些东东了解不够!
&platinum 回复于: 10:03:00
bootloader&是通过写在&MBR&中的一段代码激发的系统启动的时候,BIOS&先要检测硬盘,当发现硬盘&0&道&0&面&1&扇区的最后两个字节为&55&AA&的时候,将该扇区数据载入&0x7c00&物理地址,然后开始运行里面的程序那个扇区里前半部分是引导程序,后面是硬盘的&4&个主分区表,引导程序负责再载入其他引导程序,例如&bootloader&等,然后将其移动到内存高端地址,其后做一个跳转,将控制权向下转交
&sakulagi 回复于: 10:07:54
除了第一个系统,其他的系统都可以选择把boot&loader装在自己的分区上,而不是mbr上(windows除外)。这样可以每装一个新系统,都去修改一下第一个系统的boot&loader&的设置就可以了。
&platinum 回复于: 10:09:37
引用:原帖由&&sakulagi&]除了第一个系统,其他的系统都可以选择把boot&loader装在自己的分区上,而不是mbr上(windows除外)。这样可以每装一个新系统,都去修改一下第一个系统的boot&loader&的设置就可以了。&发表:其实&windows&也是将实际的&WIN&引导部分写在自己逻辑分区的&1&扇区上面的,如果用&debug&载入&0&道&0&面&1&扇区后就可以得到证实,MBR&的部分只不过是一个“跳板”
&风流涕淌 回复于: 10:15:03
引用:原帖由&&platinum&&发表:bootloader&是通过写在&MBR&中的一段代码激发的系统启动的时候,BIOS&先要检测硬盘,当发现硬盘&0&道&0&面&1&扇区的最后两个字节为&55&AA&的时候,将该扇区数据载入&0x7c00&物理地址,然后开始运行里面的程序那?.........偶像,我刚刚学LINUX时,看到有人曾把版主的这个地址表拿出来讲课,当时我很晕,现在听来,明白了一些强
&sakulagi 回复于: 10:31:31
引用:原帖由&&platinum&&发表:其实&windows&也是将实际的&WIN&引导部分写在自己逻辑分区的&1&扇区上面的,如果用&debug&载入&0&道&0&面&1&扇区后就可以得到证实,MBR&的部分只不过是一个“跳板”主要是windows安装的时候一定要把自己的”跳板“写在MBR里,然后指向自己的分区。这点不是很爽。
&platinum 回复于: 10:58:11
引用:原帖由&&sakulagi&&发表:主要是windows安装的时候一定要把自己的”跳板“写在MBR里,然后指向自己的分区。这点不是很爽。是呀是呀&:D&不过好像所有的&OS&几乎都是用同一个“跳板”,真正自己的引导程序在自己的逻辑分区的第一个扇区上一些早期的引导型病毒,以及某些&bootloader,还有些硬盘加密卡,他们会修改&MBR,做个“钩子”出来
&flw 回复于: 11:00:11
引用:原帖由&&sakulagi&]主要是windows安装的时候一定要把自己的”跳板“写在MBR里,然后指向自己的分区。这点不是很爽。&发表:9494,这点不爽。而且还要自动激活&windows&分区。其实我发现,先装&linux,再装&windows,那么&windows&的&MBR&程序(注意不是&BOOT&RECORD)也可以引导&linux。方法就是在&windows&的磁盘管理器中将&linux&的&grub&所在分区设置成活动分区就可以了。
&flw 回复于: 11:04:01
MBR&是哪个操作系统装的并不重要,因为&MBR&还算是有规范的:最终都会跳到活动分区的&BOOT&RECORD&中去,所以,只需要将&boot&loader&写到自己的&BOOT&RECORD&中,然后再设置好活动分区,就不怕有多少个操作系统了。我一般都是&MBR&到&grub,然后用&grub&引导多系统。我从不把&grub&写到&MBR,就是怕&windows&搞坏它。
&风流涕淌 回复于: 11:29:26
引用:原帖由&&flw&&发表:MBR&是哪个操作系统装的并不重要,因为&MBR&还算是有规范的:最终都会跳到活动分区的&BOOT&RECORD&中去,所以,只需要将&boot&loader&写到自己的&BOOT&RECORD&中,然后再设置好活动分区,就不怕有多少个操作系统..........我一般都是&MBR&到&grub,然后用&grub&引导多系统。&我从不把&grub&写到&MBR,就是怕&windows&搞坏它。这两句不懂mbr到grub和grub到mbr有什么区别??? 偶像
&glider126 回复于: 12:36:58
我一般都是&MBR&到&grub,然后用&grub&引导多系统。&我从不把&grub&写到&MBR,就是怕&windows&搞坏它。我也看不懂~~~~~~~~~~~~我的个人理解(有疑问大家可以一起讨论):呵呵~~~&mbr只是一个指针,mbr说跳到哪里执行就从哪里执行.这个哪里执行,其实就是一个os&loader&(也是一个程序)的位置,或者就是直接的os的启动代码位置,负责把os引导起来.grub是一个os&loader,lilo也是一个os&loader,nt也有一个load,好像叫什么&xxx&load,忘记了~~os&loader和操作系统无关~~~~不过os&loader的位置和是否可以启动os有关,因为bios只能读到8g硬盘前的数据(os&loader没有载入之前,硬件是bios控制的),os&loader别装太后面(8g后面),至于os的启动文件在哪里就没有8g的限制,因为grub载入后可以读到整个硬盘的数据了~~~
&platinum 回复于: 12:46:51
引用:原帖由&&glider126&&发表:因为bios只能读到8g硬盘前的数据(os&loader没有载入之前,硬件是bios控制的)BIOS&用中断&0x13MBR&里面也调用中断&0x13MBR&是一个标准,几乎所有硬盘里面的&MBR(除了分区表)都是一样的,BIOS&都是把把硬盘的物理第&1&&扇区载入内存,然后&MBR&跳转到到某个逻辑分区的引导程序上来完成引导的好了,问题出来了,BIOS&是用&0x13,而且调用的就是&BIOS&的&0x13,因此恐怕说“因为bios只能读到8g硬盘前的数据”是错误的&:em11:
&flw 回复于: 13:43:26
&;&;&;mbr只是一个指针================MBR&是&Master&Boot&Record&的简称。主引导记录,也是机器控制权交给用户程序的唯一入口。
&glider126 回复于: 15:17:35
The&Interrupt&13h&interfaceWhen&IBM&engineered&the&AT&they&put&the&interface&for&the&harddisk&(Int&13h)&in&the&system&BIOS.Whenever&an&application&wants&to&read&from/write&to&a&drive,&it&calls&DOS.DOS&knows&the&structure&of&the&disk&and&where&the&target&file&is&located.&It&then&calculates&a&CHS&(Cylinder,&Head,&Sector)&address&and&calls&the&BIOS&via&Int&13h.The&BIOS&then&executes&the&read&or&write&command&at&this&CHS&address&by&accessing&the&HD&controller&directly&via&its&I/O-port&addresses.The&result&is&passed&back&to&DOS&who&passes&it&back&to&the&application.This&scheme&makes&DOS&(drive)&hardware&independent&and&leaves&the&hardware&specifics&to&the&BIOS.The&traditional&BIOS&Int&13h&interface&has&the&following&limitations&(when&called&from&DOS):1024&Cylinders,&256&Heads&and&63&Sectors/track.With&512&bytes/sector&this&counts&up&to&8&GB&(8064&MB)!
&platinum 回复于: 15:33:47
int&13h&有扩展入口,可以读写&8G&以上的空间
&glider126 回复于: 16:16:58
platinum&:/dev/hda1&&&&&&&&&&&&/&&&&&&&&&20g/dev/hda2&&&&&&&&&&&&/boot&&&&&100m/dev/hda3&&&&&&&&&&&&swap&&&&&&256mgrub装在/boot里请问,这个系统可以使用grub引导启动linux吗?
&platinum 回复于: 16:24:11
MBR&-&;&某个逻辑区的引导信息(一般是第一个)在你这里,就是指的&/&,如果你的&MBR&指向的是&/boot,那么你就能引导,否则会用&/&的引导信息引导,就会报错换句话说,即使是普通的&MBR(未经特殊修改),&/boot&是&hda1,而&/&是&/hda2,那么也能引导以上仅是理论分析,曾经看过&MBR&的一些资料,对里面的数据结构有所了解,但不知用来解释这个是否正确,还请指正
&风流涕淌 回复于: 16:33:10
引用:原帖由&&flw&&发表:&;&;&;mbr只是一个指针================MBR&是&Master&Boot&Record&的简称。主引导记录,也是机器控制权交给用户程序的唯一入口。有一点了解,不知我理解的对不对正常应是mbr交给kernel而现在是mbr交给grub再由grub交给kernel可以这样理解吗
&面筋粘知了 回复于: 17:11:06
到底谁能权威的、通俗的把boot&loader的过程解释一下啊?
&flw 回复于: 17:12:49
引用:原帖由&&风流涕淌&&发表:有一点了解,不知我理解的对不对正常应是mbr交给kernel而现在是mbr交给grub再由grub交给kernel可以这样理解吗MBR&根本就不管什么内核不内核的,它不懂这个,你说了它还是不懂。它只知道简单地查表,查分区表,分区表一般是&64&个字节,每条记录&16&个字节,共&4&条记录。到网上找找,有分区表的记录格式。分区表的每条记录记录了以下信息:分区起始扇区、分区终止扇区、分区类型、活动分区标志。等等。MBR&会查找活动分区标志,活动分区应该只有一个,找到后,MBR&会根据分区表的记录信息,找到那个分区,并且将其逻辑&0&扇区(Boot&Record)载入内存,也就是&0x7c00,然后执行&jump&0x07c0:0000&就将控制权交给&Boot&Record&了。Boot&Record&一般就是&OS&LOADER,比如&linux&的&bootsect.s,或者&MS-DOS&的&boot.asm,但是现在的操作系统的大多都允许别的操作系统和它并存,因此,各个厂商就开发了自己的&OS&LOADER&用来装载多个操作系统。比如&SCO&的&boot&冒号提示符就可以引导多个操作系统,linux&则奉行一贯的拿来主义,采用了&grub,lilo&等。windows&也有自己的&OS&LOADER,不过对非&MS&系统不太友好而已。OS&LOADER&接受用户选择,然后再次载入用户选择操作系统的&LOADER,比如&linux&的&boot/bootsect.s&就是。当然了,grub&lilo&等多操作系统引导程序本身不去判断将要载入的是什么程序(其实什么程序都一样,都是一段汇编),因此,在我的机器上,grub&可以跳到&SCO&的&boot:,然后我还可以跳回来再跳到&grub,总之道理明白了就好理解了。
&flw 回复于: 18:36:40
这个是我收藏的。硬盘、分区引导和操作系统加载程序(4458&个字於此篇帖子)(已阅读:&2484&次)发信人:&suzhe&(I&Love&Linux),&信区:&FreeDevelop&&&&&&&标&&题:&HardDisk,Partition,Boot,OSLoader专题发信站:&BBS&水木清华站&(Sat&Nov&20&16:45:44&1999)&&&&第一部分&&简&&介1,1一.&硬盘结构简介&&&&&&&&1.&硬盘参数释疑&&&&&&&&&&到目前为止,&人们常说的硬盘参数还是古老的&CHS&(Cylinder/Head/Sector)参数.&那么为什么要使用这些参数,&它们的意义是什么?&&&它们的取值范围是什么?&&&&&&&很久以前,&硬盘的容量还非常小的时候,&人们采用与软盘类似的结构生产硬盘.&也就是硬盘盘片的每一条磁道都具有相同的扇区数.&由此&&&&产生了所谓的3D参数&(Disk&Geometry).&既磁头数(Heads),&柱面数&&&&(Cylinders),&扇区数(Sectors),以及相应的寻址方式.&&&&&&&&&&&&其中:&&&&&&&&磁头数(Heads)&表示硬盘总共有几个磁头,也就是有几面盘片,&最大为&255&(用&8&个二进制位存储);&&&&&&&&柱面数(Cylinders)&表示硬盘每一面盘片上有几条磁道,&最大为&1023(用&10&个二进制位存储);&&&&&&&&扇区数(Sectors)&表示每一条磁道上有几个扇区,&最大为&63&(用&6个二进制位存储).&&&&&&&&每个扇区一般是&512个字节,&理论上讲这不是必须的,&但好象没有取别的值的.&&&&&&&&所以磁盘最大容量为:&&&&255&*&1023&*&63&*&512&/&1048576&=&8024&GB&(&1M&=&1048576&Bytes&)或硬盘厂商常用的单位:&&&&255&*&1023&*&63&*&512&/&1000000&=&8414&GB&(&1M&=&1000000&Bytes&)&&&&在&CHS&寻址方式中,&磁头,&柱面,&扇区的取值范围分别为&0&到&Heads&-&1,0&到&Cylinders&-&1,&1&到&Sectors&(注意是从&1&开始).&&2.&基本&Int&13H&调用简介&&&&BIOS&Int&13H&调用是&BIOS&提供的磁盘基本输入输出中断调用,&它可以完成磁盘(包括硬盘和软盘)的复位,&读写,&校验,&定位,&诊断,&格式化等功能.它使用的就是&CHS&寻址方式,&因此最大识能访问&8&GB&左右的硬盘&(&本文中如不作特殊说明,&均以&1M&=&1048576&字节为单位).&&3.&现代硬盘结构简介&&&&在老式硬盘中,&由于每个磁道的扇区数相等,&所以外道的记录密度要远低于内道,&因此会浪费很多磁盘空间&(与软盘一样).&为了解决这一问题,&进一步提高硬盘容量,&人们改用等密度结构生产硬盘.&也就是说,&外圈磁道的扇区比内圈磁道多.&采用这种结构后,&硬盘不再具有实际的3D参数,&寻址方式也改为线性寻址,&即以扇区为单位进行寻址.&&&&为了与使用3D寻址的老软件兼容&(如使用BIOS&Int13H接口的软件),&在硬盘控制器内部安装了一个地址翻译器,&由它负责将老式3D参数翻译成新的线性参数.&这也是为什么现在硬盘的3D参数可以有多种选择的原因&(不同的工作模式,&对应不同的3D参数,&如&LBA,&LARGE,&NORMAL).&&4.&扩展&Int&13H&简介&&&&虽然现代硬盘都已经采用了线性寻址,&但是由于基本&Int&13H&的制约,&使用&BIOS&Int&13H&接口的程序,&如&DOS&等还只能访问&8&G&以内的硬盘空间.为了打破这一限制,&Microsoft&等几家公司制定了扩展&Int&13H&标准(Extended&Int13H),&采用线性寻址方式存取硬盘,&所以突破了&8&G&的限制,而且还加入了对可拆卸介质&(如活动硬盘)&的支持.二.&Boot&Sector&结构简介&&1.&Boot&Sector&的组成&&&&Boot&Sector&也就是硬盘的第一个扇区,&它由&MBR&(Master&Boot&Record),DPT&(Disk&Partition&Table)&和&Boot&Record&ID&&三部分组成.&&&&MBR&又称作主引导记录占用&Boot&Sector&的前&446&个字节&(&0&to&0x1BD&),存放系统主引导程序&(它负责从活动分区中装载并运行系统引导程序).&&&&DPT&即主分区表占用&64&个字节&(0x1BE&to&0x1FD),&记录了磁盘的基本分区信息.&主分区表分为四个分区项,&每项&16&字节,&分别记录了每个主分区的信息(因此最多可以有四个主分区).&&&&Boot&Record&ID&即引导区标记占用两个字节&(0x1FE&and&0x1FF),&对于合法引导区,&它等于&0xAA55,&这是判别引导区是否合法的标志.&&&&Boot&Sector&的具体结构如下图所示&(参见&NightOwl&大侠的文章):&&&&&&0000&&|------------------------------------------------|&&&&&&&&&&&&|&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&|&&&&&&&&&&&&|&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&|&&&&&&&&&&&&|&&&&&&&&&&&&&Master&Boot&Record&&&&&&&&&&&&&&&&&|&&&&&&&&&&&&|&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&|&&&&&&&&&&&&|&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&|&&&&&&&&&&&&|&&&&&&&&&&&&&主引导记录(446字节)&&&&&&&&&&&&&&&&|&&&&&&&&&&&&|&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&|&&&&&&&&&&&&|&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&|&&&&&&&&&&&&|&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&|&&&&&&01BD&&|&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&|&&&&&&01BE&&|------------------------------------------------|&&&&&&&&&&&&|&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&|&&&&&&01CD&&|&&&&&&&&&&&&&分区信息&&1(16字节)&&&&&&&&&&&&&&&&|&&&&&&01CE&&|------------------------------------------------|&&&&&&&&&&&&|&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&|&&&&&&01DD&&|&&&&&&&&&&&&&分区信息&&2(16字节)&&&&&&&&&&&&&&&&|&&&&&&01DE&&|------------------------------------------------|&&&&&&&&&&&&|&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&|&&&&&&01ED&&|&&&&&&&&&&&&&分区信息&&3(16字节)&&&&&&&&&&&&&&&&|&&&&&&01EE&&|------------------------------------------------|&&&&&&&&&&&&|&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&|&&&&&&01FD&&|&&&&&&&&&&&&&分区信息&&4(16字节)&&&&&&&&&&&&&&&&|&&&&&&&&&&&&|------------------------------------------------|&&&&&&&&&&&&|&01FE&&&&&&&&&&&&&&&&|&01FF&&&&&&&&&&&&&&&&&&&&&|&&&&&&&&&&&&|&&&&&&&&&55&&&&&&&&&&|&&&&&&&&&&&AA&&&&&&&&&&&&&|&&&&&&&&&&&&|------------------------------------------------|&&2.&分区表结构简介&&&&分区表由四个分区项构成,&每一项的结构如下:&&&&BYTE&State&&&&&&&:&分区状态,&0&=&未激活,&0x80&=&激活&(注意此项)&&&&BYTE&StartHead&&&:&分区起始磁头号&&&&WORD&StartSC&&&&&:&分区起始扇区和柱面号,&底字节的低6位为扇区号,&&&&&&&&&&&&&&&&&&&&&高2位为柱面号的第&9,10&位,&高字节为柱面号的低&8&位&&&&BYTE&Type&&&&&&&&:&分区类型,&如&0x0B&=&FAT32,&0x83&=&Linux&等,&&&&&&&&&&&&&&&&&&&&&00&表示此项未用&&&&BYTE&EndHead&&&&&:&分区结束磁头号&&&&WORD&EndSC&&&&&&&:&分区结束扇区和柱面号,&定义同前&&&&DWORD&Relative&&&:&在线性寻址方式下的分区相对扇区地址&&&&&&&&&&&&&&&&&&&&&&&(对于基本分区即为绝对地址)&&&&DWORD&Sectors&&&&:&分区大小&(总扇区数)&&&&注意:&在&DOS&/&Windows&系统下,&基本分区必须以柱面为单位划分(&Sectors&*&Heads&个扇区),&如对于&CHS&为&764/255/63&的硬盘,&分区的最小尺寸为&&255&*&63&*&512&/&1048576&=&7.844&MB.&&3.&扩展分区简介&&&&由于主分区表中只能分四个分区,&无法满足需求,&因此设计了一种扩展分区格式.&基本上说,&扩展分区的信息是以链表形式存放的,&但也有一些特别的地方.&&&&首先,&主分区表中要有一个基本扩展分区项,&所有扩展分区都隶属于它,也就是说其他所有扩展分区的空间都必须包括在这个基本扩展分区中.&对于DOS&/&Windows&来说,&扩展分区的类型为&0x05.&&&&除基本扩展分区以外的其他所有扩展分区则以链表的形式级联存放,&后一个扩展分区的数据项记录在前一个扩展分区的分区表中,&但两个扩展分区的空间并不重叠.&&&&扩展分区类似于一个完整的硬盘,&必须进一步分区才能使用.&但每个扩展分区中只能存在一个其他分区.&此分区在&DOS/Windows&环境中即为逻辑盘.因此每一个扩展分区的分区表&(同样存储在扩展分区的第一个扇区中)中最多只能有两个分区数据项(包括下一个扩展分区的数据项).&&&&扩展分区和逻辑盘的示意图如下:&&|-----------------------|&&&&&&&&&&&&&--------&&|&主扩展分区(/dev/hda2)&|&&&&&&&&&&&&&&&&&&&&^&&|-----------------------|&&&&&&&&&&&&&&&&&&&&|&&|&&扩&&展&&|&&分区项&1&&|--&&&&&&&&&&&&&&&&&|&&|&&&&&&&&&&|------------|&&|&&&&&&&&&&&&&&&&&|&&|&&分区表&&|&&分区项&2&&|--+--&&&&&&&&&&&&&&|&&|-----------------------|&&|&&|&&&&&&&&&&&&&&|&&|&&&&&&&&&&&&&&&&&&&&&&&|&&|&&|&&&&&&&&&&&&&&|&&|&逻辑盘&1&(/dev/hda5)&&|&-/&&|&&&&&&&&&&&&&&|&&|&&&&&&&&&&&&&&&&&&&&&&&|&&&&&|&&&&&&&&&&&&&&|&&|-----------------------|&&&&&|&&&&&&&&&&&&&主&&|&&&&&&扩展分区&2&&&&&&&|&----/&&|-----------------------|&&&&&&&&&&&&&&&&&&&扩&&|&&扩&&展&&|&&分区项&1&&|--&&|&&&&&&&&&&|------------|&&|&&&&&&&&&&&&&&&&展&&|&&分区表&&|&&分区项&2&&|--+--&&|-----------------------|&&|&&|&&&&&&&&&&&&&分&&|&&&&&&&&&&&&&&&&&&&&&&&|&&|&&|&&|&逻辑盘&2&(/dev/hda6)&&|&-/&&|&&&&&&&&&&&&&区&&|&&&&&&&&&&&&&&&&&&&&&&&|&&&&&|&&&&&&&&&&&&&&|&&|-----------------------|&&&&&|&&&&&&&&&&&&&&|&&|&&&&&&扩展分区&3&&&&&&&|&----/&&&&&&&&&&&&&&|&&|-----------------------|&&&&&&&&&&&&&&&&&&&&|&&|&&扩&&展&&|&&分区项&1&&|--&&&&&&&&&&&&&&&&&|&&|&&&&&&&&&&|------------|&&|&&&&&&&&&&&&&&&&&|&&|&&分区表&&|&&分区项&2&&|&&|&&&&&&&&&&&&&&&&&|&&|-----------------------|&&|&&&&&&&&&&&&&&&&&|&&|&&&&&&&&&&&&&&&&&&&&&&&|&&|&&&&&&&&&&&&&&&&&|&&|&逻辑盘&3&(/dev/hda7)&&|&-/&&&&&&&&&&&&&&&&&|&&|&&&&&&&&&&&&&&&&&&&&&&&|&&&&&&&&&&&&&&&&&&&&|&&|-----------------------|&&&&&&&&&&&&---------三.&系统启动过程简介&&&&系统启动过程主要由一下几步组成(以硬盘启动为例):&&&&1.&开机&:-)&&&&2.&BIOS&加电自检&(&Power&On&Self&Test&--&POST&)&&&&&&&内存地址为&0ffff:0000&&&&3.&将硬盘第一个扇区&(0头0道1扇区,&也就是Boot&Sector)&&&&&&&读入内存地址&&处.&&&&4.&检查&(WORD)&0000:7dfe&是否等于&0xaa55,&若不等于&&&&&&&则转去尝试其他启动介质,&如果没有其他启动介质则显示&&&&&&&&No&ROM&BASIC&&然后死机.&&&&5.&跳转到&&处执行&MBR&中的程序.&&&&6.&MBR&首先将自己复制到&&处,&然后继续执行.&&&&7.&在主分区表中搜索标志为活动的分区.&如果发现没有活动&&&&&&&分区或有不止一个活动分区,&则转停止.&&&&8.&将活动分区的第一个扇区读入内存地址&&处.&&&&9.&检查&(WORD)&0000:7dfe&是否等于&0xaa55,&若不等于则&&&&&&&显示&&Missing&Operating&System&&然后停止,&或尝试&&&&&&&软盘启动.&&&&10.&跳转到&&处继续执行特定系统的启动程序.&&&&11.&启动系统&...&&&&以上步骤中&2,3,4,5&步是由&BIOS&的引导程序完成.&6,7,8,9,10步由MBR中的引导程序完成.&&&&一般多系统引导程序&(如&SmartFDISK,&BootStar,&PQBoot&等)都是将标准主引导记录替换成自己的引导程序,&在运行系统启动程序之前让用户选择要启动的分区.&&&&而某些系统自带的多系统引导程序&(如&lilo,&NT&Loader&等)则可以将自己的引导程序放在系统所处分区的第一个扇区中,&在&Linux中即为&SuperBlock&(其实&SuperBlock&是两个扇区).&&&&注:&以上各步骤中使用的是标准&MBR,&其他多系统引导程序的引导过程与此不同.&&&&第二部分&技术资料第一章&扩展&Int13H&技术资料一.&简介&&&&设计扩展&Int13H&接口的目的是为了扩展&BIOS&的功能,&使其支持多于1024柱面的硬盘,&以及可移动介质的琐定,&解锁及弹出等功能.二.&数据结构1.&数据类型约定&&&&BYTE&&&&1&字节整型&(&&8&位&)&&&&WORD&&&&2&字节整型&(&16&位&)&&&&DWORD&&&4&字节整型&(&32&位&)&&&&QWORD&&&8&字节整型&(&64&位&)2.&磁盘地址数据包&Disk&Address&Packet&(DAP)&&&&DAP&是基于绝对扇区地址的,&因此利用&DAP,&Int13H&可以轻松地逾越&1024&柱面的限制,&因为它根本就不需要&CHS&的概念.&&&&DAP&的结构如下:&&&&struct&DiskAddressPacket&&&&{&&&&&&&&BYTE&PacketS&&&&&//&数据包尺寸(16字节)&&&&&&&&BYTE&R&&&&&&&//&==0&&&&&&&&WORD&BlockC&&&&&//&要传输的数据块个数(以扇区为单位)&&&&&&&&DWORD&BufferA&&&&//&传输缓冲地址(segment:offset)&&&&&&&&QWORD&BlockN&&&&&&//&磁盘起始绝对块地址&&&&};&&&&PacketSize&保存了&DAP&结构的尺寸,&以便将来对其进行扩充.&在目前使用的扩展&Int13H&版本中&PacketSize&恒等于&16.&如果它小于16,&扩展&Int13H&将返回错误码(&AH=01,&CF=1&).&&&&BlockCount&对于输入来说是需要传输的数据块总数,&对于输出来说是实际传输的数据块个数.&BlockCount&=&0&表示不传输任何数据块.&&&&BufferAddr&是传输数据缓冲区的&32&位地址&(段地址:偏移量).&数据缓冲区必须位于常规内存以内(1M).&&&&BlockNum&表示的是从磁盘开始算起的绝对块地址(以扇区为单位),与分区无关.&第一个块地址为&0.&一般来说,&BlockNum&与&CHS&地址的关系是:&&&&BlockNum&=&cylinder&*&NumberOfHeads&+&&&&&&&&&&&&&&&head&*&SectorsPerTrack&+&&&&&&&&&&&&&&&sector&-&1;&&&&其中&cylinder,&head,&sector&是&CHS&地址,&NumberOfHeads&是磁盘的磁头数,&SectorsPerTrack&是磁盘每磁道的扇区数.&&&&也就是说&BlockNum&是沿着&扇区-&;磁道-&;柱面&的顺序记数的.&这一顺序是由磁盘控制器虚拟的,&磁盘表面数据块的实际排列顺序可能与此不同(如为了提高磁盘速度而设置的间隔因子将会打乱扇区的排列顺序).3.&驱动器参数数据包&Drive&Parameters&Packet&&&驱动器参数数据包是在扩展&Int13H&的取得驱动器参数子功能调用中使用的数据包.&格式如下:&&&&struct&DriveParametersPacket&&&&{&&&&&&&&WORD&InfoS&&&&&&&&&&//&数据包尺寸&(26&字节)&&&&&&&&WORD&F&&&&&&&&&&&&&//&信息标志&&&&&&&&DWORD&C&&&&&&&&//&磁盘柱面数&&&&&&&&DWORD&H&&&&&&&&&&&&//&磁盘磁头数&&&&&&&&DWORD&SectorsPerT&&//&每磁道扇区数&&&&&&&&QWORD&S&&&&&&&&&&//&磁盘总扇区数&&&&&&&&WORD&SectorS&&&&&&&&//&扇区尺寸&(以字节为单位)&&&&};&&&&信息标志用于返回磁盘的附加信息,&每一位的定义如下:&&&&0&位:&&&&&&&&0&=&可能发生&DMA&边界错误&&&&&&&&1&=&DMA&边界错误将被透明处理&&&&&&&&如果这位置&1,&表示&BIOS&将自动处理&DMA&边界错误,&也就是说&&&&&&&&错误代码&09H&永远也不会出现.&&&&1&位:&&&&&&&&0&=&未提供&CHS&信息&&&&&&&&1&=&CHS&信息合法&&&&&&&&如果块设备的传统&CHS&几何信息不适当的话,&该位将置&0.&&&&2&位:&&&&&&&&0&=&驱动器不可移动&&&&&&&&1&=&驱动器可移动&&&&3&位:&表示该驱动器是否支持写入时校验.&&&&4&位:&&&&&&&&0&=&驱动器不具备介质更换检测线&&&&&&&&1&=&驱动器具备介质更换检测线&&&&5&位:&&&&&&&&0&=&驱动器不可锁定&&&&&&&&1&=&驱动器可以锁定&&&&&&&&要存取驱动器号大于&0x80&的可移动驱动器,&该位必须置&1&&&&&&&&(某些驱动器号为&0&到&0x7F&的设备也需要置位)&&&&6&位:&&&&&&&&0&=&CHS&值是当前存储介质的值&(仅对于可移动介质),&如果&&&&&&&&驱动器中有存储介质,&CHS&值将被返回.&&&&&&&&1&=&CHS&值是驱动器支持的最大值&(此时驱动器中没有介质).&&&&7&-&15&位:&保留,&必须置&0.三.&接口规范1.&寄存器约定&&&&在扩展&Int13H&调用中一般使用如下寄存器约定:&&&&ds:di&==&;&磁盘地址数据包(&disk&address&packet&)&&&&dl&&&&==&;&驱动器号&&&&ah&&&&==&;&功能代码&/&返回码&&&&在基本&Int13H&调用中,&0&-&0x7F&之间的驱动器号代表可移动驱动器0x80&-&0xFF&之间的驱动器号代表固定驱动器.&但在扩展&Int13H&调用中0x80&-&0xFF&之间还包括一些新出现的可移动驱动器,&比如活动硬盘等.这些驱动器支持先进的锁定,解锁等功能.&&&&ah&返回的错误码除了标准&Int13H&调用规定的基本错误码以外,又增加了以下错误码:&&&B0h&&&驱动器中的介质未被锁定&&&B1h&&&驱动器中的介质已经锁定&&&B2h&&&介质是可移动的&&&B3h&&&介质正在被使用&&&B4h&&&锁定记数溢出&&&B5h&&&合法的弹出请求失败2.&API&子集介绍&&&1.x&版的扩展&Int13H&调用中规定了两个主要的&API&子集.&&&第一个子集提供了访问大硬盘所必须的功能,&包括&检查扩展&In13H是否存在(&41h&),&扩展读(&42h&),&扩展写(&43h&),&校验扇区(&44h&),扩展定位(&47h&)&和&取得驱动器参数(&48h&).&&&第二个子集提供了对软件控制驱动器锁定和弹出的支持,&包括&检查扩展Int13H&是否存在(&41h&),&锁定/解锁驱动器(&45h&),&弹出驱动器(&46h&),取得驱动器参数(&48h&),&取得扩展驱动器改变状态(&49h&),&int&15h.&&&如果使用了调用规范中不支持的功能,&BIOS&将返回错误码&ah&=&01h,CF&=&1.3.&API&详解1)&检验扩展功能是否存在入口:&&&&AH&=&41h&&&&BX&=&55AAh&&&&DL&=&驱动器号返回:&&&&CF&=&0&&&&&&&AH&=&扩展功能的主版本号&&&&&&&AL&=&内部使用&&&&&&&BX&=&AA55h&&&&&&&CX&=&API&子集支持位图&&&&CF&=&1&&&&&&&AH&=&错误码&01h,&无效命令&&&&这个调用检验对特定的驱动器是否存在扩展功能.&如果进位标志置&1则此驱动器不支持扩展功能.&如果进位标志为&0,&同时&BX&=&AA55h,&则存在扩展功能.&此时&CX&的&0&位表示是否支持第一个子集,&1位表示是否支持第二个子集.&&&&对于&1.x&版的扩展&Int13H&来说,&主版本号&AH&=&1.&AL&是副版本号,但这仅限于&BIOS&内部使用,&任何软件不得检查&AL&的值.2)&扩展读入口:&&&&AH&=&42h&&&&DL&=&驱动器号&&&&DS:DI&=&磁盘地址数据包(Disk&Address&Packet)返回:&&&&CF&=&0,&AH&=&0&成功&&&&CF&=&1,&AH&=&错误码&&&&这个调用将磁盘上的数据读入内存.&如果出现错误,&DAP&的&BlockCount项中则记录了出错前实际读取的数据块个数.3)&扩展写入口:&&&&AH&=&43h&&&&AL&&&&&&&0&位&=&0&关闭写校验&&&&&&&&&&&&&&1&打开写校验&&&&&&&1&-&7&位保留,&置&0&&&&DL&=&驱动器号&&&&DS:DI&=&磁盘地址数据包(DAP)返回:&&&&CF&=&0,&AH&=&0&成功&&&&CF&=&1,&AH&=&错误码&&&&这个调用将内存中的数据写入磁盘.&如果打开了写校验选项,&但&BIOS不支持,&则会返回错误码&AH&=&01h,&CF&=&1.&功能&48h&可以检测BIOS是否支持写校验.&&&&如果出现错误,&DAP&的&BlockCount&项中则记录了出错前实际写入的数据块个数.4)&校验扇区入口:&&&&AH&=&44h&&&&DL&=&驱动器号&&&&DS:DI&=&磁盘地址数据包(Disk&Address&Packet)返回:&&&&CF&=&0,&AH&=&0&成功&&&&CF&=&1,&AH&=&错误码&&&&这个调用校验磁盘数据,&但并不将数据读入内存.如果出现错误,&DAP&的BlockCount&项中则记录了出错前实际校验的数据块个数.5)&锁定/解锁驱动器入口:&&&&AH&=&45h&&&&AL&&&&&&&&=&0&锁定驱动器&&&&&&&&=&1&驱动器解锁&&&&&&&&=&02&返回锁定/解锁状态&&&&&&&&=&03h-FFh&-&保留&&&&DL&=&驱动器号返回:&&&&CF&=&0,&AH&=&0&成功&&&&CF&=&1,&AH&=&错误码&&&&这个调用用来缩定指定驱动器中的介质.&&&&所有标号大于等于&0x80&的可移动驱动器必须支持这个功能.&如果在支持可移动驱动器控制功能子集的固定驱动器上使用这个功能调用,&将会成功返回.&&&&驱动器必须支持最大255次锁定,&在所有锁定被解锁之前,&不能在物理上将驱动器解锁.&解锁一个未锁定的驱动器,将返回错误码&AH=&B0h.&如果锁定一个已锁定了255次的驱动器,&将返回错误码&AH&=&B4h.&&&&锁定一个没有介质的驱动器是合法的.6)&弹出可移动驱动器中的介质入口:&&&&AH&=&46h&&&&AL&=&0&保留&&&&DL&=&驱动器号返回:&&&&CF&=&0,&AH&=&0&成功&&&&CF&=&1,&AH&=&错误码&&&&这个调用用来弹出指定的可移动驱动器中的介质.&&&&所有标号大于等于&0x80&的可移动驱动器必须支持这个功能.&如果在支持可移动驱动器控制功能子集的固定驱动器上使用这个功能调用,&将会返回错误码&AH&=&B2h&(介质不可移动).&如果试图弹出一个被锁定的介质将返回错误码&AH&=&B1h&(介质被锁定).&&&&如果试图弹出一个没有介质的驱动器,&则返回错误码&Ah&=&31h&(驱动器中没有介质).&&&&如果试图弹出一个未锁定的可移动驱动器中的介质,&Int13h会调用&Int15h(AH&=&52h)&来检查弹出请求能否执行.&如果弹出请求被拒绝则返回错误码(同Int15h).&如果弹出请求被接受,但出现了其他错误,&则返回错误码&AH&=&B5h.7)&扩展定位入口:&&&&AH&=&47h&&&&DL&=&驱动器号&&&&DS:DI&=&磁盘地址数据包(Disk&Address&Packet)返回:&&&&CF&=&0,&AH&=&0&成功&&&&CF&=&1,&AH&=&错误码&&&&这个调用将磁头定位到指定扇区.8)&取得驱动器参数入口:&&&&AH&=&48h&&&&DL&=&驱动器号&&&&DS:DI&=&返回数据缓冲区地址返回:&&&&CF&=&0,&AH&=&0&成功&&&&&&&&DS:DI&驱动器参数数据包地址,&(参见前面的文章)&&&&CF&=&1,&AH&=&错误码&&&&这个调用返回指定驱动器的参数.9)&取得扩展驱动器介质更换检测线状态入口:&&&&AH&=&49h&&&&DL&=&驱动器号返回:&&&&CF&=&0,&AH&=&0&&介质未更换&&&&CF&=&1,&AH&=&06h&介质可能已更换&&&&这个调用返回指定驱动器的介质更换状态.&&&&这个调用与&Int13h&AH&=&16h&子功能调用相同,&只是允许任何驱动器标号.&如果对一台支持可移动介质功能子集的固定驱动器使用此功能,则永远返回&CF&=&0,&AH&=&0.&&&&简单地将可移动介质锁定再解锁就可以激活检测线,&而无须真正更换介质.返回:&&&&CF&=&0,&AH&=&0&&介质未更换&&&&CF&=&1,&AH&=&06h&介质可能已更换&&&&这个调用返回指定驱动器的介质更换状态.&&&&这个调用与&Int13h&AH&=&16h&子功能调用相同,&只是允许任何驱动器标号.&如果对一台支持可移动介质功能子集的固定驱动器使用此功能,则永远返回&CF&=&0,&AH&=&0.&&&&简单地将可移动介质锁定再解锁就可以激活检测线,&而无须真正更换介质.10)&Int&15h&可移动介质弹出支持入口:&&&&AH&=&52h&&&&DL&=&驱动器号返回:&&&&CF&=&0,&AH&=&0&弹出请求可能可以执行&&&&CF&=&1,&AH&=&错误码&B1h&或&B3h&&弹出请求不能执行&&&&这个调用是由&Int13h&AH=46h&弹出介质功能调用内部使用的.
&风流涕淌 回复于: 19:40:45
好长,读了一半,先顶一下我以前学的时候,我记得我们的老师能把分区表读出来不知哪位有空说一下呵呵让我亲眼看一下
&flw 回复于: 19:58:19
引用:原帖由&&风流涕淌&&发表:不知哪位有空说一下呵呵让我亲眼看一下说什么?看什么?上面的东西觉得不够看吗?
&风流涕淌 回复于: 20:10:01
我的意思是说上边的东西理论性特别强我想看看真实的机器里是如何写的对照着看我知道要求有点过份如果没空我就自已找了
&flw 回复于: 20:47:33
引用:原帖由&&风流涕淌&&发表:我的意思是说上边的东西理论性特别强我想看看真实的机器里是如何写的对照着看我知道要求有点过份如果没空我就自已找了真实机器的,我马上给你&debug&一份出来。
&flw 回复于: 20:59:12
Welcome&to&FreeDOSC:\&;debug=a1AB7:0100&mov&ax,&03&mov&bx,&06&mov&cx,&09&mov&dx,&0C&int&131AB7:010E=t=100AX=0201&&BX=0000&&CX=0000&&DX=0000&&SP=FFFE&&BP=0000&&SI=0000&&DI=0000DS=1AB7&&ES=1AB7&&SS=1AB7&&CS=1AB7&&IP=0103&&&NV&UP&DI&PL&NZ&NA&PO&NC1AB7:0103&BB0002&&&&&&&&MOV&&&&&BX,0200=tAX=0201&&BX=0200&&CX=0000&&DX=0000&&SP=FFFE&&BP=0000&&SI=0000&&DI=0000DS=1AB7&&ES=1AB7&&SS=1AB7&&CS=1AB7&&IP=0106&&&NV&UP&DI&PL&NZ&NA&PO&NC1AB7:&&&&&&&&MOV&&&&&CX,0001=tAX=0201&&BX=0200&&CX=0001&&DX=0000&&SP=FFFE&&BP=0000&&SI=0000&&DI=0000DS=1AB7&&ES=1AB7&&SS=1AB7&&CS=1AB7&&IP=0109&&&NV&UP&DI&PL&NZ&NA&PO&NC1AB7:0109&BA8000&&&&&&&&MOV&&&&&DX,0080=tDS=1AB7&&ES=1AB7&&SS=1AB7&&CS=1AB7&&IP=010C&&&NV&UP&DI&PL&NZ&NA&PO&NC1AB7:010C&CD13&&&&&&&&&&INT&&&&&13=tAX=0001&&BX=0200&&CX=0001&&DX=0080&&SP=FFFE&&BP=0000&&SI=0000&&DI=0000DS=1AB7&&ES=1AB7&&SS=1AB7&&CS=1AB7&&IP=0110&&&NV&UP&DI&PL&NZ&NA&PO&NC1AB7:&&&&&&&&&&ADD&&&&&[BX+SI],AL&&&&&&&&&&&&&&&&&&&&&&&&&&&DS:0200=34=d&E&C0&8E&D8&8E&D0-BC&00&7C&FC&8B&F4&BF&00&&&4.........|.....1AB7:&00&01&F2&A5&EA&67-06&00&00&8B&D5&58&A2&4F&&&.......g.....X.O1AB7:C&35&74&23&B4&10&F6-E4&05&AE&04&8B&F0&80&7C&&&.&5t#..........|1AB7:&74&44&80&7C&04&05-74&3E&C6&04&80&E8&DA&00&&&..tD.|..t&;......1AB7:&01&8B&4C&02&EB&08-E8&CF&00&B9&01&00&32&D1&&&.t..L.........2.1AB7:0250&&BB&00&7C&B8&01&02&CD&13-72&1E&81&BF&FE&01&55&AA&&&..|.....r.....U.1AB7:&EA&00&7C&00&00&80-FA&81&74&02&B2&80&8B&EA&&&u...|.....t.....1AB7:&F2&B3&88&16&41&07-BF&BE&07&B9&04&00&C6&06&&&B.....A.........=d1AB7:&31&32&F6&88&2D&8A-45&04&3C&00&74&23&3C&05&&&4.12..-.E.&.t#&.1AB7:F&FE&C6&BE&31&07&E8-71&00&BE&4F&07&46&46&8B&&&t....1..q..O.FF.1AB7:02A0&&1C&0A&FF&74&05&32&7D&04-75&F3&8D&B7&7B&07&E8&5A&&&...t.2}.u...{..Z1AB7:02B0&&00&83&C7&10&FE&06&34&07-E2&CB&80&3E&75&04&02&74&&&......4....&;u..t1AB7:02C0&&0B&BE&42&07&0A&F6&75&0A-CD&18&EB&AC&BE&31&07&E8&&&..B...u......1..1AB7:02D0&&39&00&E8&36&00&32&E4&CD-1A&8B&DA&83&C3&60&B4&01&&&9..6.2.......`..1AB7:02E0&&CD&16&B4&00&75&0B&CD&1A-3B&D3&72&F2&A0&4F&07&EB&&&....u...;.r..O..1AB7:02F0&&0A&CD&16&8A&C4&3C&1C&74-F3&04&F6&3C&31&72&D6&3C&&&.....&.t...&1r.&=d1AB7:&D2&50&BE&2F&07&BB-1B&06&53&FC&AC&50&24&7F&&&5w.P./....S..P$.1AB7:0310&&B4&0E&CD&10&58&A8&80&74-F2&C3&56&B8&01&03&BB&00&&&....X..t..V.....1AB7:&01&00&32&F6&CD&13-5E&C6&06&4F&07&3F&C3&0D&&&....2...^..O.?..1AB7:D&0A&46&35&20&2E&20-2E&20&2E&A0&64&69&73&6B&&&...F5&.&.&..disk1AB7:&0D&0A&0A&44&65&66-61&75&6C&74&3A&20&46&31&&&&2...Default:&F11AB7:0350&&A0&00&01&00&04&00&06&03-07&07&0A&0A&63&0E&64&0E&&&............c.d.1AB7:&80&19&81&19&82&19-83&1E&93&24&A5&2B&9F&2F&&&e..........$.+./1AB7:&52&33&DB&36&40&3B-F2&41&00&44&6F&F3&48&70&&&u3R3.6@;.A.Do.Hp=d1AB7:&4F&73&B2&55&6E&69-F8&4E&6F&76&65&6C&EC&4D&&&f.Os.Uni.Novel.M1AB7:E&69&F8&4C&69&6E&75-F8&41&6D&6F&65&62&E1&46&&&ini.Linu.Amoeb.F1AB7:03A0&&72&65&65&42&53&C4&42&53-44&E9&50&63&69&F8&43&70&&&reeBS.BSD.Pci.Cp1AB7:03B0&&ED&56&65&6E&69&F8&44&6F-73&73&65&E3&3F&BF&80&01&&&.Veni.Dosse.?...1AB7:03C0&&01&00&06&0F&3F&CA&3F&00-00&00&11&1F&03&00&00&00&&&....?.?.........1AB7:03D0&&00&00&00&00&00&00&00&00-00&00&00&00&00&00&00&00&&&................1AB7:03E0&&00&00&00&00&00&00&00&00-00&00&00&00&00&00&00&00&&&................1AB7:03F0&&00&00&00&00&00&00&00&00-00&00&00&00&00&00&55&AA&&&..............U.=u&2001AB7:&&&&&&&&&&XOR&&&&&AL,C01AB7:&&&&&&&&&&MOV&&&&&ES,AX1AB7:&&&&&&&&&&MOV&&&&&DS,AX1AB7:&&&&&&&&&&MOV&&&&&SS,AX1AB7:0208&BC007C&&&&&&&&MOV&&&&&SP,7C001AB7:020B&FC&&&&&&&&&&&&CLD1AB7:020C&8BF4&&&&&&&&&&MOV&&&&&SI,SP1AB7:020E&BF0006&&&&&&&&MOV&&&&&DI,06001AB7:&&&&&&&&MOV&&&&&CX,01001AB7:&&&&&&&&&&REP&&&&&MOVSW1AB7:0216&EA&&&&JMP&&&&&1AB7:021B&8BD5&&&&&&&&&&MOV&&&&&DX,BP1AB7:021D&58&&&&&&&&&&&&POP&&&&&AX1AB7:021E&A24F07&&&&&&&&MOV&&&&&[074F],AL=u1AB7:&&&&&&&&&&CMP&&&&&AL,351AB7:&&&&&&&&&&JZ&&&&&&02481AB7:&&&&&&&&&&MOV&&&&&AH,101AB7:&&&&&&&&&&MUL&&&&&AH1AB7:&&&&&&&&ADD&&&&&AX,04AE1AB7:022C&8BF0&&&&&&&&&&MOV&&&&&SI,AX1AB7:022E&807C0400&&&&&&CMP&&&&&BYTE&PTR&[SI+04],001AB7:&&&&&&&&&&JZ&&&&&&0&&&&&&CMP&&&&&BYTE&PTR&[SI+04],051AB7:E&&&&&&&&&&JZ&&&&&&0A&C60480&&&&&&&&MOV&&&&&BYTE&PTR&[SI],801AB7:023D&E8DA00&&&&&&&&CALL&&&&031A1AB7:1&&&&&&&&MOV&&&&&DH,[SI+01]=u1AB7:C02&&&&&&&&MOV&&&&&CX,[SI+02]1AB7:0246&EB08&&&&&&&&&&JMP&&&&&02501AB7:&&&&&&&&CALL&&&&031A1AB7:024B&B90100&&&&&&&&MOV&&&&&CX,0E&32D1&&&&&&&&&&XOR&&&&&DL,CL1AB7:0250&BB007C&&&&&&&&MOV&&&&&BX,7C001AB7:&&&&&&&&MOV&&&&&AX,06&CD13&&&&&&&&&&INT&&&&&131AB7:E&&&&&&&&&&JB&&&&&&0A&81BFFE0155AA&&CMP&&&&&WORD&PTR&[BX+01FE],AA551AB7:&&&&&&&&&&JNZ&&&&&02&EA007C0000&&&&JMP&&&&&=d&3be,&3ff1AB7:03B0&&&&&&&&&&&&&&&&&&&&&&&&&-&&&&&&&&&&&&&&&&&&80&01&&&&&&&&&&&&&&&&&..1AB7:03C0&&01&00&06&0F&3F&CA&3F&00-00&00&11&1F&03&00&00&00&&&....?.?.........1AB7:03D0&&00&00&00&00&00&00&00&00-00&00&00&00&00&00&00&00&&&................1AB7:03E0&&00&00&00&00&00&00&00&00-00&00&00&00&00&00&00&00&&&................1AB7:03F0&&00&00&00&00&00&00&00&00-00&00&00&00&00&00&55&AA&&&..............U.=qC:\&;
&flw 回复于: 20:59:55
这是我的&FreeDOS&系统自带的&MBR&程序。
&风流涕淌 回复于: 21:05:23
&flw 回复于: 21:07:53
看到没有?MBR&末尾明明写着&JMP&
&flw 回复于: 21:09:12
最后我给出的是分区表,我的硬盘只有一个分区。55AA&实际上就是&AA55,(低位在前),是个分区有效标志。
&platinum 回复于: 21:40:57
如果对&MBR&感兴趣,如果对&debug&有所了解,不妨看一下这个http://www.ascc.net/nl/86/1318/05.txt
&platinum 回复于: 21:43:08
引用:C:\&;debug&=a&1AB7:0100&mov&ax,&:0103&mov&bx,&:0106&mov&cx,&:0109&mov&dx,&:010C&int&13&1AB7:010E&=t=100&AX=0201&&BX=0000&&CX=0000&&DX=0000&&SP=FFFE&&BP=0000&&SI=0000&&DI=0000&DS=1AB7&&ES=1AB7&&SS=1AB7&&CS=1AB7&&IP=0103&&&NV&UP&DI&PL&NZ&NA&PO&NC&1AB7:0103&BB0002&&&&&&&&MOV&&&&&BX,0200&=t&AX=0201&&BX=0200&&CX=0000&&DX=0000&&SP=FFFE&&BP=0000&&SI=0000&&DI=0000&DS=1AB7&&ES=1AB7&&SS=1AB7&&CS=1AB7&&IP=0106&&&NV&UP&DI&PL&NZ&NA&PO&NC&1AB7:&&&&&&&&MOV&&&&&CX,0001&=t&AX=0201&&BX=0200&&CX=0001&&DX=0000&&SP=FFFE&&BP=0000&&SI=0000&&DI=0000&DS=1AB7&&ES=1AB7&&SS=1AB7&&CS=1AB7&&IP=0109&&&NV&UP&DI&PL&NZ&NA&PO&NC&1AB7:0109&BA8000&&&&&&&&MOV&&&&&DX,0080&=t&DS=1AB7&&ES=1AB7&&SS=1AB7&&CS=1AB7&&IP=010C&&&NV&UP&DI&PL&NZ&NA&PO&NC&1AB7:010C&CD13&&&&&&&&&&INT&&&&&13&=t&AX=0001&&BX=0200&&CX=0001&&DX=0080&&SP=FFFE&&BP=0000&&SI=0000&&DI=0000&DS=1AB7&&ES=1AB7&&SS=1AB7&&CS=1AB7&&IP=0110&&&NV&UP&DI&PL&NZ&NA&PO&NC&1AB7:&&&&&&&&&&ADD&&&&&[BX+SI],AL&&&&&&&&&&&&&&&&&&&&&&&&&&&DS:0200=34&=d&200&flw&兄,你这个调试方法是不对的,应该用&p&,而不是用&tt&会进入到中断里面,而&p&则是执行完这个中断后返回因此你&t&之后&d200,是无法正确显示硬盘&0&道&0&面&1&扇区数据的,应该用&p&代替就对了&:D
&flw 回复于: 11:20:35
引用:原帖由&&platinum&&发表:flw&兄,你这个调试方法是不对的,应该用&p&,而不是用&tt&会进入到中断里面,而&p&则是执行完这个中断后返回因此你&t&之后&d200,是无法正确显示硬盘&0&道&0&面&1&扇区数据的,应该用&p&代替就对了&:D是吗?&:?:&&:?:&&:?:&奇怪了,可是我怎么能看到扇区内容呢?我再看看帮助。
&flw 回复于: 11:23:01
引用:原帖由&&flw&&发表:是吗?&:?:&&:?:&&:?:&奇怪了,可是我怎么能看到扇区内容呢?我再看看帮助。我刚才又试了一下,t&和&p&一样啊。是不是&FreeDOS&的&debug&和&MS&的不一样啊。我再找找资料。
&platinum 回复于: 15:02:06
引用:=t&AX=0201&&BX=0200&&CX=0001&&DX=0000&&SP=FFFE&&BP=0000&&SI=0000&&DI=0000&DS=1AB7&&ES=1AB7&&SS=1AB7&&CS=1AB7&&IP=0109&&&NV&UP&DI&PL&NZ&NA&PO&NC&1AB7:0109&BA8000&&&&&&&&MOV&&&&&DX,0080&=t&DS=1AB7&&ES=1AB7&&SS=1AB7&&CS=1AB7&&IP=010C&&&NV&UP&DI&PL&NZ&NA&PO&NC&1AB7:010C&CD13&&&&&&&&&&INT&&&&&13&=t&AX=0001&&BX=0200&&CX=0001&&DX=0080&&SP=FFFE&&BP=0000&&SI=0000&&DI=0000&DS=1AB7&&ES=1AB7&&SS=1AB7&&CS=1AB7&&IP=0110&&&NV&UP&DI&PL&NZ&NA&PO&NC&1AB7:&&&&&&&&&&ADD&&&&&[BX+SI],AL&&&&&&&&&&&&&&&&&&&&&&&&&&&DS:0200=34&恩,看来是不一样从连续几次&t&后看,段地址没有变,而偏移地址向后移动了,证明确实执行了&INT&13H&后跳了出来,看来和传统&MS&的&debug&确实不大一样FreeDOS&是什么?我没接触过,介绍一下&:em06:
&flw 回复于: 20:22:24
引用:原帖由&&platinum&]FreeDOS&是什么?我没接触过,介绍一下&:em06:&发表:FreeDOS&是硕果仅存的&DOS。现在功能很强,支持&FAT32&NTFS&什么的。而且移植了很多&GNU&的工具,大有卷土重来之势。
&面筋粘知了 回复于: 14:39:31
还是不明白,希望大大们解答:boot&loader&record和boot&&loader是一回事吗,如果不是一回事,那么boot&loader&record写在mbr里那boot&&loader写在哪儿,系统启动时是怎样一个步骤?
&platinum 回复于: 14:53:02
我不明白&boot&loader&record&是什么意思如果和&MBR&(Master&Boot&Record)&一样去理解,那么&BLR&(Boot&Loader&Record)&可能应该存放在逻辑分区的第一扇区上我认为&boot&loader&其实就是一段引导程序,不知道&grub&算不算这里,我也想知道&boot&loader&和&boot&loader&record&的区别是什么。。。。
&采风 回复于: 15:00:16
boot&loader&record是啥玩意?哪儿看到的概念?&:roll:
&flw 回复于: 15:39:26
引用:原帖由&&面筋粘知了&]系统启动时是怎样一个步骤?&发表:1,按电源,系统加电,CPU&寄存器复位,IP&指向&ROM,然后&CPU&开始工作。(如何“开始”我还不知道,不过猜想应该有个激活电路)。2,ROM&中的程序就是事先写好的&BIOS&自检程序,存储在&CMOS&介质(CMOS&[计]&互补金属-氧化物-半导体)上,BIOS&自检程序我同样也不了解。自检完毕后,BIOS&将根据用户的启动顺序设置寻找启动设备,PXE、光盘、USB&等等我不太懂,软盘和硬盘是类似的(硬盘稍复杂些),下面以硬盘为例。3,BIOS&检测并读取启动硬盘的物理&0&面&0&道&1&扇区(MBR),共&512&个字节到内存&0x07C0:0000,然后判断&511、512&两个字节是不是&55AA,如果是,则认为此硬盘可引导,那么执行&JUMP&0x07C0:0000&将控制权交给&MBR。4,至此,系统控制权由&MBR&接管,因为&MBR&是个程序,你自己就可以写一段,因此你完全可以做你想做的任何事情。比如格式化硬盘&:D&:D&:D,DOS&时代的引导记录型病毒就是这么回事。再或者像&Linus&一样,做一个在屏幕上循环显示&A&和&B&的程序,都可以。5,尽管如此,MBR&还是有一定规范的,我也不知道这个规范是谁定的,反正习惯上开始,从偏移量&1BE&开始的&64&个字节,称为“分区表”,共四条记录,每条记录&16&个字节。6,因为按照规范(就是我不知道的那个规范),硬盘上可以装多个操作系统,所以&MBR&只起到一个选择启动哪个操作系统的作用,真实的操作系统加载流程由&存放在引导扇区&BOOT&SECTOR&中的引导记录&BOOT&RECORD&来完成,同样按照规范,BOOT&RECORD&应该从&0x07C0:0000&处开始执行,所以&MBR&通常都要先将自己搬移,以腾出位置去加载&BOOT&SECTOR。7,最简单的指明到底需要引导哪个操作系统的方法是设置“活动分区”,在分区表的四个记录中,一般来说有且只有一个记录的标记是活动的,MBR&找到这个分区记录后,根据记录的起始扇区加载该分区的逻辑&0&扇区(起始扇区)的内容到&0x07C0:0000,并且执行&JUMP&0x07C0:0000。控制权切换到&BOOT&RECORD。8,BOOT&RECORD&的工作原理类似于&MBR,以&linux&为例,它会读取&linux&内核镜像到地址&0x,然后开始切换到&0x&继续运行。以&MS-DOS&为例,它会读取文件系统根目录下的&IO.SYS&和&MSDOS.SYS&两个文件然后加载到内存中继续运行。总之,所有的一切从&MBR&开始都是程序,你想怎么写就怎么写,懂汇编的朋友们&debug/dd&出来看看就明白了。
&面筋粘知了 回复于: 15:48:43
在安装Redhat&Linux过程中会有一选项让你选择把boot&loader&record安装在mbr或者boot分区的first&sector,我的理解是boot&loader是一个程序(像grub、lilo),boot&loader&record是指向boot&loader的记录,实际是如何,请指正!
&platinum 回复于: 15:48:43
很详细补充说明一下0x07C0:0000C00这两个地址是一样的,都是物理地址&0x7c00
&flw 回复于: 15:53:25
引用:原帖由&&platinum&&发表:很详细补充说明一下0x07C0:0000C00这两个地址是一样的,都是物理地址&0x7c000x07C0:00000x:D&:D&:D已经改正啦。
&面筋粘知了 回复于: 15:58:36
引用:原帖由&&flw&&发表:金属-氧化物-半导体)上,BIOS&自检程序我同样也不了解。自检完毕后,BIOS&将根据用户的启动顺序设置寻找启动设备,PXE、光盘、USB&等等我不太懂,软盘和硬盘是类似的(硬盘稍复杂些),下面以硬盘为例。3,BIOS..........是很详细,但是如果我选择把boot&loader&record安装在boot分区的first&sector,那又是怎样的一个引导过程?
&platinum 回复于: 16:01:42
能否先告诉我什么是&boot&loader&record&?
&flw 回复于: 16:18:05
下面再说一下&linux&的启动过程。1,前面说到,MBR&会加载&OS&LOADER&到&0x07C0:0000&然后开始运行,linux&的&OS&LOADER&代码名字叫&bootsect.s,是一个长度为&512&字节的小程序。前面也提到,多个操作系统的切换通过激活不同的分区表记录来完成,DOS/LINUX&都有个&fdisk&程序用来做这件事,windows&的磁盘管理器可以完成类似功能,但是活动分区每次设置完之后得重启才能生效,因此多个操作系统之间的选择似乎不是那么方便,因此就有了多操作系统引导程序,如&grub&lilo&等等。这些程序在&MBR&的眼中看来,就是引导记录,你甚至可以将它们直接写到&MBR&中,覆盖掉原有的&MBR&程序,但是我建议不要这么做,因为&MBR&只有一个,多个操作系统之间争夺起来会比较讨厌,经常会发生你刚写了我又写一遍的情形,因此建议统统装到&BOOT&SECTOR,并且在硬盘分区表中将含有最强功能&OS&LOADER&的那个分区激活。这样&MBR&会将控制权交给&OS&LOADER。2,OS&LOADER&接受用户的选择,然后启动需要启动的操作系统。linux&系统则开始运行&bootsect.s,3,bootsect.s&什么都不做,因为它只是一个&OS&LOADER,它首先将自己移动到&0x&处,然后将另一个组件&setup.s&加载到&0x,然后&JMP&0x&开始运行&setup.s4,setup.s&加载操作系统的头部&head.s&及紧随其后的&linux&内核&main.c&移动到&0x,然后调用&BIOS&功能获取并保存一大堆系统参数,如磁盘参数表等等,准备接下来准备覆盖掉&BIOS&向量表,覆盖后所有的&BIOS&中断都不再可用。5,设置完毕之后,setup.s&将以&head.s&为首的&Linux&内核镜像移动到物理地址&0x,然后设置段表、页表,最后调整机器状态字到&32&位保护模式。6,JMP&0x0&跳转到线性地址&0x0,开始执行&head.s。head.s&设定一些参数之后,调用&C&语言程序入口&main()&函数,操作系统进入&C&程序控制。特别说明:以上内容全凭记忆,因为本人记性一向不好,如有记错,请&BS&一下下就可以了,不要吐口水。刚又查了一下书,这下应该对了。
&flw 回复于: 16:30:23
刚才又修改了几个用得不正确的术语。下面我再统一解释一下:MBR(Master&Boot&Record)硬盘主引导记录,存储在&0&面&0&道&1&扇区,这个位置不能变,因此一个硬盘的&0&磁道要是坏了,那么它就该扔了。BOOT&SECTOR&引导扇区,指可引导分区的逻辑&0&扇区,也即起始扇区。何谓可引导分区?即起始扇区末尾两字节分别为&0x55&0xAA&的分区。BOOT&RECORD&引导记录,引导扇区中存贮的程序。OS&LOADER&操作系统加载程序,用来将一个操作系统的内核从磁盘调入内存并设置参数以便于运行该内核的一段程序,BOOT&RECORD&通常就是一个&OS&LOADER&程序,但是对于&grub&lilo&等&OS&LOADER&来讲,它本身就是一个完整的软件,它会接受用户的选择并加载运行相应的&BOOT&RECORD。boot&loader&record&没听说过。
&platinum 回复于: 16:30:29
引用:5,设置完毕之后,setup.s&将&head.s&及紧随其后的&linux&内核&main.c&移动到&0x,然后设置段表、页表,最后调整机器状态字到&32&位保护模式。我对这个有些异议在进入&32&位保护模式前,物理地址&0x00000&开头的&400h&字节应该是存放&256&个中断的“中断向量表”,怎么能把程序复制过去呢?
&flw 回复于: 16:32:59
引用:原帖由&&platinum&&发表:我对这个有些异议在进入&32&位保护模式前,物理地址&0x00000&开头的&400h&字节应该是存放&256&个中断的“中断向量表”,怎么能把程序复制过去呢?这段区域最终是要被覆盖的。不过在覆盖之前,操作系统会先在物理地址&0x&处呆一会儿。调用完中断之后,再下调到&0x0&覆盖&BIOS&中断向量。
&platinum 回复于: 16:35:21
在进入&32&位保护模式之前,中断向量表可以被破坏吗?如果是纯内存操作我认为还可以,如果涉及到调用中断。。。。不知道我是不是记错了,线性地址好像也是&32&保护模式下的叫法
&flw 回复于: 16:47:31
引用:原帖由&&platinum&&发表:在进入&32&位保护模式之前,中断向量表可以被破坏吗?如果是纯内存操作我认为还可以,如果涉及到调用中断。。。。不知道我是不是记错了,线性地址好像也是&32&保护模式下的叫法刚改了下,你再看看。
&platinum 回复于: 16:51:51
恩?&flw&兄指点一下改了哪里,我没找到&:oops:
&面筋粘知了 回复于: 16:53:05
引用:原帖由&&platinum&]能否先告诉我什么是&boot&loader&record&?&发表:如图
&platinum 回复于: 16:55:41
晕,那个意思是&Boot&Loader&record&on&xxxxx意思是说把&Boot&Loader&记录到哪里后面那个&record&是个动词,而不是和前面的&Boot&Loader&连起来成为&Boot&Loader&Record。。。。。
&flw 回复于: 17:03:27
再次声明,我说的&Linux&启动顺序只是表个意思,要是我自己做&linux,我这么做是完全可以的,可是新的&linux&2.6&内核似乎已经不是这样子了。也是听说的,我没看过。总的来说,引导程序无论是&MBR&OS-LOADER&还是&BOOT-RECORD,都是一段汇编代码,你想怎么写就怎么写,写完了要是写得出名别人还得研究研究,最后的目的无非就是一个:把操作系统代码装入内存,然后&JUMP&到&C&语言的&main()
&platinum 回复于: 17:07:40
引用:原帖由&&flw&]再次声明,我说的&Linux&启动顺序只是表个意思&发表:讲的非常不错,我现在感觉明白了很多^_^人无完人,谁能记得那么多,我没有&BS&你的意思,表误解我&:em10:
&面筋粘知了 回复于: 17:09:59
引用:原帖由&&platinum&&发表:晕,那个意思是&Boot&Loader&record&on&xxxxx意思是说把&Boot&Loader&记录到哪里后面那个&record&是个动词,而不是和前面的&Boot&Loader&连起来成为&Boot&Loader&Record。。。。。老大,install才是动词,如果record也是动词,那这句话就不是一个句子了。
&flw 回复于: 17:16:13
引用:原帖由&&面筋粘知了&]老大,install才是动词,如果record也是动词,那这句话就不是一个句子了。&发表:这个同意,我也认为&record&是名词。不过,鉴于&record&的第一个字母没有大写,所以我觉得&record&就是普通名词“n.&记录”的意思,并不是专有名词的一部分,Boot&Loader&才算是一个术语,如果&record&也是术语的一部分的话,那么应该这么写才对:Boot&Loader&Record。
&flw 回复于: 17:18:05
引用:原帖由&&platinum&&发表:讲的非常不错,我现在感觉明白了很多^_^人无完人,谁能记得那么多,我没有&BS&你的意思,表误解我&:em10:没有误解你,相反我是怕误导了以后看我帖子的人。毕竟,代码才是最真实的,理论上讲,回字有四种写法。
&platinum 回复于: 17:18:17
刚看到前面还有一个&Install&:oops:
&风流涕淌 回复于: 17:19:40
建议此贴精华或置顶讲得真的不错
&betatoy 回复于: 00:04:05
boot&loader&record?&]h^
&xinyv 回复于: 02:20:24
引用:原帖由&&platinum&&发表:很详细补充说明一下0x07C0:0000C00这两个地址是一样的,都是物理地址&0x7c00不好意思问一下,这两个地址为什么是一样的,前面的是段地址,后面的是偏移地址,两个段不同,偏移也不同为什么是一个地址???还有现在进入系统以后中断13就会被从写,做了保护。我用汇编试过以下代码。a100mov&ax,0207mov&bx,0200mov&cx,0001mov&dx,0080int&13mov&ax,0207mov&bx,0400mov&cx,0001mov&dx,0180int&13int&3g=100以上是读0头0面1扇区和0头1面1扇区的代码,在win98和dos可以使用,在win2000下不能使用,还的从bios里从读中断13回写内存使用。linux可以用dd&if=/dev/hdaX&of=myfile&bs=512&count=N来读。这里在为使用linux的grub的朋友提供一个个人使用的小窍门。一般先装完windows在装linux不会有任何问题,但是如果你先装了linux在装windows,那么你的linux就会引导不起来,(我试过装了linux在装win98结果linux起不了。)如果你安装了linux,现在又想装windows,可以用下面的办法试试。装完linux以后用win引导到dos。用debug代码如下。a100mov&ax,0203&&(有的程序不只站一个扇区,多读几个没坏处)mov&bx,0200&mov&cx,0001mov&dx,0080int&13mov&ax,0303mov&bx,0200mov&cx,0007mov&dx,0080int&13mov&ax,4c00int&21g=100输入完以上代码以后你就可以放心的装windows了当你装完windows以后你的linux起不来了,(别仍鸡蛋,还没说完呢)不要着急进入你的debug用以下代码恢复。a100mov&ax,0203mov&bx,0200mov&cx,0007mov&dx,0080int&13mov&ax,0303mov&cx,0001int&13mov&ax,4c00int&21g=100如果闲麻烦可以用把这一点代码写成一个.com文件。到时一执行就可以了。然后你可以从新启动了,这时你的linux应该没问题了吧。是不是有人该问了,我的linux起来了可是我的windows怎么办???在linux中查找你的windows分区,在你的grub.conf中加上windows启动的项就可以了,怎么加就请看一句话吧。root&(hdx,x)chainloader&+1
&flw 回复于: 11:09:02
楼上的怎么会想出这么土的办法呢。只要&1,linux&的&os&loader&没有损坏2,linux&的&os&loader&不在&MBR3,linux&和&windows&不共用一个启动分区那么&windows&是不会影响&linux&的&os&loader&的,linux&也不会影响&windows&的,因此两个肯定都能起来的,只不过,因为&windows&的多系统启动管理器只能启动&MS&的系统,所以你还得把&linux&分区用&fdisk&重新激活,并且用&grub&引导。换句话说,只要装系统时不要把&os&loader&写入&MBR,那么到时候只需要激活不同的分区就可以启动不同的系统。
&xinyv 回复于: 14:53:54
首先感谢flw指正的地方.我认为你可能是没有完全理解我的意思.我是说如果先装linux又把引导程序装在了mbr上了,我们可以通过我提供的小窍门安装.而且可以起到备份的作用.如果你不小心那天感染了引导病毒可以用来恢复.而且启动检测的标志位是80&55&AA&如果这几位正确系统是可以启动的,不需要反复去激活某个分区,不信你可以试试在windows上把80前面的东西全部用00填充看看情况.也许你就明白我的意思了.
&platinum 回复于: 15:12:22
引用:a100&mov&ax,0207&mov&bx,0200&mov&cx,0001&mov&dx,0080&int&13&mov&ax,0207&mov&bx,0400&mov&cx,0001&mov&dx,0180&int&13&int&3&g=100&以上是读0头0面1扇区和0头1面1扇区的代码,在win98和dos可以使用,在win2000下不能使用,还的从bios里从读中断13回写内存使用。&你这分明是做了&2&遍读啊&3&号功能才是写,只不过是读了&2&次,读到偏移地址&200h&和&400h&去了而且你这样做是错误的,因为你是&ax=207,也就是读了&7&个扇区你第二次读的时候,会覆盖第一次读取数据的&2-7&扇区内容,不明白你写这个是什么意思?另外,基本上所有硬盘的&MBR&都是一样的,就像&flw&兄说到的从&MBR&中的硬盘分区表中可以看到真正逻辑分区的起始扇区号你将&cx&寄存器改成那个扇区号(而不再是&1,高位在前),就可以读出实际的&os&loader如果你的汇编功底不错而又有兴趣,不防分析一下啦&^_^
&platinum 回复于: 15:20:57
引用:原帖由&&xinyv&&发表:首先感谢flw指正的地方.&我认为你可能是没有完全理解我的意思.我是说如果先装linux又把引导程序装在了mbr上了,我们可以通过我提供的小窍门安装.而且可以起到备份的作用.如果你不小心那天感染了引导病毒可以用来恢复.&而且启动检测的标志位是80&55&AA&如果这几位正确系统是可以启动的,不需要反复去激活某个分区,不信你可以试试在windows上把80前面的东西全部用00填充看看情况.也许你就明白我的意思了.恩,的确是判断&80&55&AA55&AA&是&BIOS&判断的,当然&MBR&的程序里面也有,如果不为&55&AA,启动时&BIOS&会提示说没有硬盘80&呢?80&是磁碟号码,80&代表&IDE0,81&代表&IDE1,依此类推(如果没记错的话),这个是由&MBR&引导程序来判断的引用:不信你可以试试在windows上把80前面的东西全部用00填充看看情况.也许你就明白我的意思了那样的话,系统根本无法启动,因为前面部分是主引导程序,他是由&BIOS&负责载入到物理地址&0x7c00&处开始执行的,如果清成&0。。。。呵呵记得&94&年的时候,我写过“超级硬盘锁”程序,还给同学弄了个“硬盘启动倒计时”的恶作剧,让他启动&N&次后自动硬盘死锁,都是在&MBR&上做手脚的,你前面说的“引导型病毒”其实就是这个意思,只不过它们更恶劣些,比如将自身移动到高端,做个钩子,修改一些常用终端向量表等,并有自身复制和寻找宿主寄生,伺机再繁殖传播的能力而已,你重写&MBR(记住,后面的分区表不要覆盖,只覆盖前面的引导程序即可),当然能实现“暂时”清除病毒的目的
&xinyv 回复于: 15:21:38
谢谢小白的指正,我是写错了.应该改成a100mov&ax,,0207&mov&bx,0200mov&cx,0001mov&dx,0080int&13mov&ax,0207mov&bx,1200mov&cx,0001mov&dx,0180int&13int&3我的意思是mbr和真正的os&loader你仔细看看,我读的扇区是不一样的,我是想读两个来看看比较真正的os&loader和mbr的看看.
&platinum 回复于: 15:24:38
dx&不是扇区寄存器,cx&才是dx&的高&8&位,也就是&dh&是指柱面,低&8&位&dl&是指磁碟号码如果有兴趣,不妨去&google&翻一翻&中断大全&这本书,里面写的很详细
&xinyv 回复于: 15:37:54
对啊,我读的就是0头0面1扇区和0头1面1扇区呀,os&loader是放在0头1面1扇区的,你还可以用&L&2&0&1&装载,补充一下80&是活动分区标志.
&platinum 回复于: 15:44:31
恩对,80应该是所谓的“激活”既然都是&80&了,当然不用“反复激活”了另,你有没有看过&80&01&后面的&16&位数据,把他放到&cx&里面,dx&仍然是&80,再试试看?
&xinyv 回复于: 15:48:25
你说的那个应该是某个区的特定引导标志80&激活标志&&00&头&01&柱面&01&扇区号&xx&&分区类型&xxxxx&起始头,面扇区号&xxxxx结束&头面扇区号.
&platinum 回复于: 15:59:57
&platinum 回复于: 16:25:28
我记不清了,刚才特意去查了&google,是我记错了前面说的如果&dx=80,cx=扇区号,读出来的是扩展逻辑分区的分区表,不是该分区的&os&loader,自我更正一下80&那个我暂时还没找到确切资料,我印象中是“主分区”的意思,也就是说,哪个分区表是&80,先启动那个,这个不是硬性判断的,是&MBR&程序做的处理,与&55&AA&不同你所说的“分区类型”,应该是在偏移地址&0x1c2&处下面几个图我觉得挺好的,顺便贴上来
&xinyv 回复于: 16:32:14
贴子我收藏了.
&风流涕淌 回复于: 16:32:07
置顶吧,不错。
&sakulagi 回复于: 07:47:32
果然够强的讨论,虽然俺看不懂,:D
&ilfal 回复于: 18:49:35
我觉得帖主说的好象不光是bootloader,甚至可以作为一个小的操作系统,虽然只有引导功能.
原文链接:http://linux.chinaunix.net/bbs/viewthread.php?tid=563482
转载请注明作者名及原文出处
& 相关主题:
说的太好了,我顶!
Copyright & 2015 www.51yue.net Corporation, All Rights Reserved

我要回帖

更多关于 这两天淘宝怎么了 的文章

 

随机推荐