无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 19779|回复: 23
打印 上一主题 下一主题

『一键恢复区』技术贴一览 (2011-06-26整理)

[复制链接]
跳转到指定楼层
1#
发表于 2011-6-26 09:55:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为便于大家查询,现将本区前期技术帖、精华帖分类汇总,详细请浏览原贴:

无忧一键恢复2011.3.15手工安装安装方法及下载
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=172185

Windows 一键还原 2011 及 GGhost系列软件
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=157697

超级一键恢复系列软件,自创ghost进度条(不断更新中...)
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=169593

无忧一键恢复2010_1_3修改增加手工GHOST及DGEN项下载
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=119734

注:上述各帖子排名不分先后,本帖将一直更新,欢迎大家提出意见和建议,希望汇总哪类帖子,我们将尽可能为大家提供便利,感谢支持!
2#
 楼主| 发表于 2011-6-26 09:55:55 | 只看该作者
此楼留用,欢迎大家踊跃提出自己的建议或想法
回复

使用道具 举报

3#
发表于 2011-6-26 11:45:20 | 只看该作者
先占用广告位,支持版主,辛苦了、、
回复

使用道具 举报

4#
发表于 2011-6-26 18:01:02 | 只看该作者
这个帖子好,楼主辛苦了
回复

使用道具 举报

5#
发表于 2011-6-26 21:49:17 | 只看该作者
整理后,大家查起来就方便了。支持…
回复

使用道具 举报

6#
发表于 2011-6-28 18:14:39 | 只看该作者
应该让这么久以来的技术帖的发帖人先各自汇总一个普通帖子,然后再通过这个帖子的链接直达各个发帖人的帖子,那样整理起来看着才不那么凌乱。
回复

使用道具 举报

7#
发表于 2011-6-28 23:13:03 | 只看该作者
楼主的备份还原软件该更新了。
回复

使用道具 举报

8#
发表于 2011-6-30 07:55:15 | 只看该作者
哈哈!!!!!收藏!
回复

使用道具 举报

9#
发表于 2011-6-30 08:32:51 | 只看该作者
首页支持!、
L版主貌似加入的都是Ghost形式的恢复软件,有没有计划把类似SD影子、雨过天晴等类的软件也放出,然后按照这些软件的方式、规则、类型等进行排列类比?
回复

使用道具 举报

10#
 楼主| 发表于 2011-6-30 09:48:18 | 只看该作者

回复 #9 sayhi1984 的帖子

楼顶那些都是之前的置顶贴,还没有做分类等
回复

使用道具 举报

11#
发表于 2011-7-1 21:13:39 | 只看该作者
还是分类整理一下好点,分类并加上每个类别的简单说明,方便更多网友 :)
斑竹辛苦了
回复

使用道具 举报

12#
发表于 2011-7-2 15:27:48 | 只看该作者
做分类整理,很好。支持。
回复

使用道具 举报

13#
发表于 2011-7-7 15:05:21 | 只看该作者

[原创首发]实用F9一键启动隐藏分区的引导程序及注释文本——应用篇

原帖丢了实在可惜!百度来的(如有错误请斧正)。另望蛙哥保重!

二楼中文提示一键F9程序的注释文本已更新,与发布的1jf9中文提示版.rar程序内容同步注释,给试图开发、改造和利用本程序的朋友提供了便利,至此,本帖算是真正完成了。

最后整合了一下两个版本,程序没做修改,帮助文本作了少许改动,然后分类打包存放,便于网友下载和归类,本程序到此就算完成了,感谢网友们的关心和支持,特别鸣谢紫狐、NETWINXP两位版主的大力支持!NETWINXP版主提供了新的延时程序代码,坛友19951001提供的DSPTW.EXE程序和Wang6610提供的安装批处理,为本套程序起到了为虎添翼的作用,使用批处理是阿非提议并起草的,在此都一并表示衷心的感谢!今后如无重大问题,我也就此撒手不管了,谢谢大家!

         

欢迎大家下载使用,请将使用中遇到的问题以及改进意见反馈上来!

应SECOWU的要求增加了英文提示功能,已在本人实机上测试通过,欢迎大家下载测试!

1JF9ze V3.14中英文提示全功能版(圆周率版)

1JF9ze V3.14.rar (26.94 KB)(2009.03.14 10:18上传)         

[功能见使用说明]
         

i

1JF9e V3.14英文提示全功能版(圆周率版)

1JF9e V3.14.rar (26.19 KB)(2009.03.14 10:18上传)         

[功能见使用说明]         

                                             

1jf9中文提示版.rar (应lee88889999反映的问题,在安装和设置批处理中,增加了文件完整性识别和只读媒介识别功能)

1jf9中文提示版.rar (28.21 KB)(2008.12.29 20:55 上传)

[1jf9中文提示版具有:热键修改、延时设定、提示开/关和直接启动进入隐藏分区等四项设置功能]            

1JF9英文提示版.rar (应sck和jyssysz要求,修改了安装文件,以适应Vista磁盘签名的要求)

1JF9英文提示版.rar (27.12 KB)(2009.03.02 14:10 上传)

[1jf9英文提示版具有:密码设定功能]

                              

热键修改DOS版.rar(仅支持中文提示版引导程序的热键修改)

热键修改DOS版.rar (20.95 KB) (2008.09.19 10:05 上传)

实用F9激活隐藏分区的引导程序注释文本 [原创首发]

编程及撰文:Lvyanan(井底蛙)


本人撰写此文的目的是想通过发表这个引导程序(程序附后)的注解,使大家在应用该程序时,可以更好的理解程序引导的工作原理,并能根据自身特点,修改其中的指令代码,以适应自己的实际需要。下面我将对有关引导的相关知识以及本引导程序的流程原理作出讲解,如有不正确的地方请网友们批评指正。

讲解前的一些预备知识

    在此讲解的程序是一个精练、紧凑、设计合理且兼容性好的F9一键激活隐藏分区的引导程序,该程序共占用两个硬盘扇区,能以中文提示按F9键的方式,选择启动隐藏分区上的操作系统,利用隐藏分区上的操作系统和工具软件,可以很方便地实现对主机上其它操作系统的维护、备份以及恢复等操作,程序构造的EISA隐藏分区,在盘上Windows XP系统中是不能被访问和破坏的,具有较好的自我保护能力,该程序已在VPC虚拟机和DELL PE4600服务器RAID1上运行通过。

注:该程序本身并不具有系统启动、备份和恢复的功能,只是提供了对隐藏分区里PE或XP的启动支持,隐藏分区的建立和系统的安装仍需网友们自行解决,网友们可以利用事先保存在隐藏分区里的工具软件,对常规分区操作系统进行手工备份、恢复以及维护等操作。

    该程序是作为引导程序放置在从硬盘主引导扇开始的连续两个扇区里,第一扇区是由硬盘主引导程序(MBR)、主引导扇分区表(DPT)以及扇区结束标志55H、AAH(系统签名)三部分构成。从0000:0600H开始到0000:07BDH是硬盘主引导程序的驻留空间(其中07B8H—07BBH四个字节是硬盘签名);主引导扇分区表位于0000:07BEH偏移开始的地方(见三楼:驻留主引导扇程序的内存映像)从0000:07BEH开始,每16个字节(即每种颜色)为一个分区表项,共四个分区表项64个字节;0000:07FEH处的55H、AAH标志(系统签名)是引导扇的有效标志,少了它硬盘将不被BIOS和操作系统所认可,会出现操作系统不认此硬盘的现象,因此这个标志还是很重要的,有时我们遇到硬盘不能被系统识别,就有可能是少了这个标志的缘故,用FDISK /MBR命令可以解决此问题。主引导扇后的第二个扇区的内容,是F9一键启动隐藏分区提示字符的点阵码区。

    硬盘引导程序开始工作之前,先是由BIOS程序完成硬件系统自检,并在基本内存最低的1K内存中填入最初始的BIOS中断向量表,紧接其后建立一个512字节的系统低址数据区,这两项都是BIOS程序为以后启动操作系统准备的非常重要的系统资源,共占用了0000:0600H之前的1.5K内存空间,准备好这些数据结构后,BIOS程序开始为启动操作系统作准备,以硬盘启动为例,BIOS程序首先会把位于硬盘主引导扇的整个扇区的二进制映像,全部装入内存0000:7C00H处,并检查硬盘主引导扇最后的55H、AAH标志,如具有该标志,就把控制权移交给装入到0000:7C00H处的硬盘主引导程序代码,也就是交由硬盘主引导程序来接着完成启动过程,这是BIOS程序启动时的一个定式,此后就是硬盘主引导程序所要做的系统引导工作了。如果没有找到55H、AAH标志,BIOS程序会显示报错信息或根据设置去查找其它的启动设备。

中文提示F9一键激活隐藏分区程序的反汇编代码注释文本(2009.1.8更新文本)

1JF9_e.com(英文提示)的注释文本发表在344、345楼

              

中文提示F9一键激活隐藏分区程序的反汇编代码注释文本.rar (16.54 KB)(2009.01.10)

注:本注释是在Debug反汇编代码的基础上实施的,制作仓促,难免有错,仅作为参考。

                  

中文提示F9一键激活隐藏分区程序的反汇编代码注释文本

Lvyanan(井底蛙)

中文提示一键F9激活隐藏分区程序,是在19951001网友的DSPTW.EXE程序支持下,用批处理来安装的,安装原理是将1JF9z_0.BIN复制到硬盘的第一个扇区上,将1JF9z_1.BIN复制到硬盘的第二个扇区,将原来的主引导扇备份到硬盘的第三个扇区,将1JF9z_3.BIN复制到硬盘的第四个扇区,系统重启后,BIOS会将位于主引导扇上的1JF9z_0.BIN初始化程序装入内存0:7C00处执行,该初始化程序将对第四扇区1JF9z_3.BIN一键F9引导程序进行分区表装配,提取主系统分区表项和隐藏分区表项的偏移指针,保存到一键F9引导程序的61CH和61EH,并且判断隐藏分区存在与否,存在就完成初始化,不存在就恢复原来的主引导程序。

一键F9初始化程序注释文本(原文件:1JF9z_0.BIN)
初始化各段寄存器和堆栈指针
0:7C00 FA         CLI                       ;关中断
0:7C01 31C0       XOR AX,AX                 ;AX=0
0:7C03 8EC0       MOV ES,AX                 ;扩展段ES=0
0:7C05 8ED8       MOV DS,AX                 ;数据段DS=0
0:7C07 8ED0       MOV SS,AX                 ;栈段SS=0
0:7C09 BC007C     MOV SP,7C00               ;栈指针SP=7C00H
0:7C0C FB         STI                       ;开中断
装入第四扇区上的1JF9z_3.BIN映像
0:7C0D B80102     MOV AX,0201               ;设读1个扇区的功能
0:7C10 BB0006     MOV BX,0600               ;设数据缓冲区偏移址BX=600H
0:7C13 B90400     MOV CX,0004               ;设指向0柱面4扇区的操作参数
0:7C16 E8F300     CALL 7D0C                 ;调用7D0CH装入第4扇区上的1JF9z_3映像
装入第三扇区上保存的原引导扇映像
0:7C19 B80102     MOV AX,0201               ;设读1个扇区的功能
0:7C1C BB0008     MOV BX,0800               ;设数据缓冲区偏移址BX=800H
0:7C1F B90300     MOV CX,0003               ;设指向0柱面3扇区的操作参数
0:7C22 E8E700     CALL 7D0C                 ;调用7D0CH装入第3扇区上的原引导扇映像
把原引导扇的磁盘签名+分区表+系统签名复制到1JF9z_3的映像中
0:7C25 BEB809     MOV SI,09B8               ;数据传输源指针指向9B8H
0:7C28 BFB807     MOV DI,07B8               ;数据传输目的指针指向7B8H
0:7C2B B94800     MOV CX,0048               ;数据传输计数值=48H
0:7C2E F3         REPZ                      ;重复传输数据,从地址0:9B8H到0:7B8H
0:7C2F A4         MOVSB                     ;按字节传送(48H=72字节)
分区属性识别和整形
0:7C30 BEBE07     MOV SI,07BE               ;源指针指向7BEH(指向分区表首字节)
0:7C33 BF0400     MOV DI,0004               ;设置分区表项计数值DI=04H
0:7C36 807C0405   CMP BYTE PTR [SI+04],05   ;分区表项属性是05H?(扩展分区属性)
0:7C3A 7455       JZ 7C91                   ;是扩展分区转7C91H
0:7C3C 807C040F   CMP BYTE PTR [SI+04],0F   ;分区表项属性是0FH?(扩展分区属性)
0:7C40 744F       JZ 7C91                   ;是扩展分区转7C91H
0:7C42 57         PUSH DI                   ;当前DI入栈
0:7C43 56         PUSH SI                   ;当前SI入栈
0:7C44 E8CB00     CALL 7D12                 ;装入当前分区表项指向的分区引导扇
0:7C47 BE707D     MOV SI,7D70               ;源指针指向“NTFS”字符串
0:7C4A BF030A     MOV DI,0A03               ;目的指针指向分区引导扇的A03H
0:7C4D E8AD00     CALL 7CFD                 ;调用标志比较子过程进行比较
0:7C50 7439       JZ 7C8B                   ;相等则当前为NTFS分区,转7C8BH
0:7C52 BE757D     MOV SI,7D75               ;源指针指向“FAT32”字符串
0:7C55 BF520A     MOV DI,0A52               ;目的指针指向分区引导扇的A52H
0:7C58 E8A200     CALL 7CFD                 ;调用标志比较子过程进行比较
0:7C5B 741A       JZ 7C77                   ;相等则当前为FAT32分区,转7C77H
0:7C5D BE7B7D     MOV SI,7D7B               ;源指针指向“FAT16”字符串
0:7C60 BF360A     MOV DI,0A36               ;目的指针指向分区引导扇的A36H
0:7C63 E89700     CALL 7CFD                 ;调用标志比较子过程进行比较
0:7C66 5E         POP SI                    ;SI出栈
0:7C67 7408       JZ 7C71                   ;相等则当前为大于504M的FAT16分区,转7C71H
0:7C69 A1110A     MOV AX,[0A11]             ;无标志则取BPB表根目录记录数来判断
0:7C6C 3D0002     CMP AX,0200               ;根目录记录数是否等于200H(FAT16的值)
0:7C6F 751F       JNZ 7C90                  ;不相等则非FAT16分区转7C90H
0:7C71 C644040E   MOV BYTE PTR [SI+04],0E   ;给当前分区表项赋予FAT16属性标志
0:7C75 EB19       JMP 7C90                  ;转7C90H
0:7C77 5E         POP SI                    ;SI出栈
0:7C78 817C0AFA00 CMP WORD PTR [SI+0A],00FA ;判断分区起始位置是否大于等于8G
0:7C7D 7306       JNB 7C85                  ;不大于8G转7C85H
0:7C7F C644040B   MOV BYTE PTR [SI+04],0B   ;小于8G的FAT32分区赋予0BH属性标志
0:7C83 EB0B       JMP 7C90                  ;转7C90H
0:7C85 C644040C   MOV BYTE PTR [SI+04],0C   ;大于8G的FAT32分区赋予0CH属性标志
0:7C89 EB05       JMP 7C90                  ;转7C90H
0:7C8B 5E         POP SI                    ;SI出栈
0:7C8C C6440407   MOV BYTE PTR [SI+04],07   ;给当前分区表项赋予NTFS属性标志
0:7C90 5F         POP DI                    ;DI出栈
0:7C91 83C610     ADD SI,+10                ;SI=SI+10H指向下一分区表项
0:7C94 4F         DEC DI                    ;分区表项计数器DI=DI-1
0:7C95 759F       JNZ 7C36                  ;DI不为0转7C36H继续
识别和记录主系统分区和隐藏分区表项指针
0:7C97 BEBE07     MOV SI,07BE               ;源指针指向7BEH(指向分区表首字节)
0:7C9A BF0400     MOV DI,0004               ;设置分区表项计数值DI=04H
0:7C9D C60400     MOV BYTE PTR [SI],00      ;清除当前分区表项的活动标志
0:7CA0 8A5C04     MOV BL,[SI+04]            ;取前分区表项的属性标志
0:7CA3 80FB07     CMP BL,07                 ;判断是否为NTFS分区
0:7CA6 740F       JZ 7CB7                   ;是则转7CB7H
0:7CA8 80FB0B     CMP BL,0B                 ;判断是否为小于8G的FAT32分区
0:7CAB 740A       JZ 7CB7                   ;是则转7CB7H
0:7CAD 80FB0C     CMP BL,0C                 ;判断是否为大于8G的FAT32分区
0:7CB0 7405       JZ 7CB7                   ;是则转7CB7H
0:7CB2 80FB0E     CMP BL,0E                 ;判断是否为FAT16分区
0:7CB5 7516       JNZ 7CCD                  ;不是则转7CCDH
0:7CB7 803E1C0600 CMP BYTE PTR [061C],00    ;判断是否已获得主系统分区指针
0:7CBC 7507       JNZ 7CC5                  ;已获得主系统分区指针转7CC5H
0:7CBE C60480     MOV BYTE PTR [SI],80      ;为第一主分区加上激活标志
0:7CC1 89361C06   MOV [061C],SI             ;将当前的主分区指针保存在061CH
0:7CC5 881ED606   MOV [06D6],BL             ;将当前的主分区属性保存在06D6H
0:7CC9 89361E06   MOV [061E],SI             ;将当前的主分区指针保存在061EH
0:7CCD 83C610     ADD SI,+10                ;SI=SI+10H指向下一分区表项
0:7CD0 4F         DEC DI                    ;分区表项计数器DI=DI-1
0:7CD1 75CA       JNZ 7C9D                  ;DI非0转7C9DH
隐藏分区判断
0:7CD3 8B361C06   MOV SI,[061C]             ;将保存的主系统分区指针赋予SI
0:7CD7 8B3E1E06   MOV DI,[061E]             ;将保存的隐藏分区指针赋予DI
0:7CDB 39FE       CMP SI,DI                 ;将SI与DI比较,若相等则无隐藏分区
0:7CDD 7308       JNB 7CE7                  ;无隐藏分区转7CE7H
存在隐藏分区就把控制权移交给1JF9z_3引导程序
0:7CDF E82100     CALL 7D03                 ;将1JF9z_3引导程序写入主引导扇
0:7CE2 EA31060000 JMP 0000:0631             ;把控制权移交给1JF9z_3引导程序
隐藏分区不存在恢复原主引导程序并移交控制权
0:7CE7 BB0008     MOV BX,0800               ;设数据缓冲区指针BX=800H
0:7CEA E81900     CALL 7D06                 ;将保存的原主引导扇写回主引导扇
0:7CED BE0008     MOV SI,0800               ;源指针指向800H
0:7CF0 BF007C     MOV DI,7C00               ;目的指针指向7C00H
0:7CF3 B90002     MOV CX,0200               ;设数据传输计数值=200H
0:7CF6 F3         REPZ                      ;重复传输数据,从地址0:800H到0:7C00H
0:7CF7 A4         MOVSB                     ;按200H字节传送
0:7CF8 EA007C0000 JMP 0000:7C00             ;将控制权移交给7C00H处的原主引导程序
分区引导扇标志比较子过程:
0:7CFD B90400     MOV CX,0004               ;设重复比较计数值CX=04H
0:7D00 F3         REPZ                      ;按CX=04H的值重复执行
0:7D01 A6         CMPSB                     ;依次将SI和DI指针指向的字节进行比较
0:7D02 C3         RET                       ;返回调用程序
1JF9z_3引导程序写入主引导扇子过程:
0:7D03 BB0006     MOV BX,0600               ;设数据缓冲区指针BX=600H
0:7D06 B80103     MOV AX,0301               ;设INT13H写1个扇区的功能参数
0:7D09 B90100     MOV CX,0001               ;设指向0柱面1扇区的操作参数
0:7D0C BA8000     MOV DX,0080               ;设指向第一硬盘及0磁头的操作参数
0:7D0F CD13       INT 13                    ;调用常规INT13H中断服务
0:7D11 C3         RET                       ;返回调用程序
分区引导扇装入子过程:
0:7D12 89F3       MOV BX,SI                 ;将分区表项指针送入BX
0:7D14 BE607D     MOV SI,7D60               ;SI指向INT13H扩展功能调用服务包
0:7D17 B8000A     MOV AX,0A00               ;将缓冲区偏移量送入AX
0:7D1A 894404     MOV [SI+04],AX            ;将缓冲区偏移量送入INT13H服务包
0:7D1D 8C5C06     MOV [SI+06],DS            ;将缓冲区段址送入INT13H服务包
0:7D20 8B4708     MOV AX,[BX+08]            ;取分区表项保留扇区数低字送到AX
0:7D23 894408     MOV [SI+08],AX            ;将分区表项保留扇区数低字送入INT13H服务包
0:7D26 8B470A     MOV AX,[BX+0A]            ;取分区表项保留扇区数高字送到AX
0:7D29 89440A     MOV [SI+0A],AX            ;将分区表项保留扇区数高字送入INT13H服务包
0:7D2C B280       MOV DL,80                 ;设操作设备号指向第一硬盘
0:7D2E BBAA55     MOV BX,55AA               ;设BX=55AA
0:7D31 B80042     MOV AX,4200               ;设INT13H扩展读扇区功能号
0:7D34 CD13       INT 13                    ;调用INT13H扩展功能
0:7D36 C3         RET                       ;返回调用程序

一键F9引导程序注释文本(原文件:1JF9z_3.BIN)
寄存器初始化及程序转
0:0600 FA         CLI                      ;关中断
0:0601 33C0       XOR AX,AX                ;AX=0
0:0603 8EC0       MOV ES,AX                ;扩展段ES=0
0:0605 8ED8       MOV DS,AX                ;数据段DS=0
0:0607 8ED0       MOV SS,AX                ;栈段SS=0
0:0609 BC007C     MOV SP,7C00              ;栈指针SP=7C00H
0:060C 8BF4       MOV SI,SP                ;数据传输源指针指向7C00H
0:060E FC         CLD                      ;设数据传输正方向
0:060F BF0006     MOV DI,0600              ;数据传输目的指针指向600H
0:0612 B90001     MOV CX,0100              ;数据传输计数值=100H
0:0615 F3         REPZ                     ;重复传输数据,从地址0:7C00H到0:600H
0:0616 A5         MOVSW                    ;按字传送(2X256=512字节)
0:0617 EA30060000 JMP 0000:0630            ;程序转移到0:0630H处继续执行
主系统分区表项指针
0:061C 0000       ADD [BX+SI],AL           ;保存主系统分区表项指针
隐藏系统分区表项指针
0:061E 0000       ADD [BX+SI],AL           ;保存隐藏系统分区表项指针
INT13H扩展功能调用服务包
0:0620 1000       ADC [BX+SI],AL           ;服务包长度┓
0:0622 0100       ADD [BX+SI],AX           ;操作扇区数┃
0:0624 0000       ADD [BX+SI],AL           ;缓冲区偏移┃
0:0626 0000       ADD [BX+SI],AL           ;缓冲区段址┃INT13H扩展功能调用服务包
0:0628 0000       ADD [BX+SI],AL           ;操作扇区号┃
0:062A 0000       ADD [BX+SI],AL           ;    .    ┃
0:062C 0000       ADD [BX+SI],AL           ;    .    ┃
0:062E 0000       ADD [BX+SI],AL           ;    .    ┛
判断是否绝对转移到隐藏分区启动
0:0630 FB         STI                      ;开中断
0:0631 803EBC06EB CMP BYTE PTR [06BC],EB   ;比较06BCH处是否为EB代码
0:0636 7479       JZ 06B1                  ;是则转移到06B1H作隐藏分区启动处理
装入显示F9汉字提示点阵码扇区
0:0638 BB0008     MOV BX,0800              ;设数据缓冲区偏移址BX=800H
0:063B B90200     MOV CX,0002              ;设指向0柱面2扇区的操作参数
0:063E B80102     MOV AX,0201              ;设读1个扇区的功能
0:0641 E8D500     CALL 0719                ;调用0719H子过程装入汉字点阵码扇区
校验F9汉字提示点阵码扇区
0:0644 89DE       MOV SI,BX                ;源指针寄存器SI=BX=800H指向装入的点阵码扇区
0:0646 B90001     MOV CX,0100              ;设计数器CX=100H
0:0649 31DB       XOR BX,BX                ;BX寄存器清0
0:064B AD         LODSW                    ;将DS:SI指向的字送入AX并使SI加2指向下一个字
0:064C 03D8       ADD BX,AX                ;累加AX中的值
0:064E E2FB       LOOP 064B                ;使CX=CX-1若CX不为0则转64BH继续
0:0650 83FBFF     CMP BX,-01               ;比较BX中的累加和是不是等于FFFFH
0:0653 755C       JNZ 06B1                 ;不相等即非匹配的汉字点阵扇区转6B1H启动主系统分区
显示中文按键提示
0:0655 B80006     MOV AX,0600              ;设INT10H的06H号功能向上滚动行数为0
0:0658 B707       MOV BH,07                ;设空白底行所使用的属性参数为07H(设黑底白字)
0:065A 31C9       XOR CX,CX                ;设滚动的行列为0行0列
0:065C BA4F18     MOV DX,184F              ;设滚动的底行为18H,滚动的右边列为4FH
0:065F CD10       INT 10                   ;调用INT10H实现指定屏幕区域的向上滚动
0:0661 B91500     MOV CX,0015              ;设定要显示的字符数=15H
0:0664 BAC100     MOV DX,00C1              ;设定字符号=C1H
0:0667 BB0010     MOV BX,1000              ;设定每字符16个字节,字节页为0
0:066A B80011     MOV AX,1100              ;设定字符生成器的用户字体装入功能
0:066D BD0008     MOV BP,0800              ;设定ES:BP指向用户点阵字模的指针
0:0670 CD10       INT 10                   ;调用INT10H显示功能
0:0672 B700       MOV BH,00                ;BH置0
0:0674 8D36E009   LEA SI,[09E0]            ;取显示字符点阵颜色设置字串的偏移指针送入SI
0:0678 BA0101     MOV DX,0101              ;设置DH=1行,DL=1列(设显示起始行、列位置)
0:067B B0C0       MOV AL,C0                ;AL=C0H
0:067D 50         PUSH AX                  ;AX入栈
0:067E B402       MOV AH,02                ;使AH=02H设置INT10H置光标功能
0:0680 FEC2       INC DL                   ;设置光标从当前行列递增1列显示
0:0682 CD10       INT 10                   ;调用INT10H更新光标位置
0:0684 8A1C       MOV BL,[SI]              ;将DS:[SI]指向的字节装入BL
0:0686 B90100     MOV CX,0001              ;CX=0001H因调用INT10H的09H号功能时CX必须为1
0:0689 58         POP AX                   ;AX出栈
0:068A FEC0       INC AL                   ;AL=AL+1用AL计数
0:068C 50         PUSH AX                  ;AX入栈
0:068D B409       MOV AH,09                ;AH=09H设置INT10H写字符和属性功能
0:068F CD10       INT 10                   ;调用INT10H在光标处写入字符及属性
0:0691 58         POP AX                   ;AX出栈
0:0692 46         INC SI                   ;使SI=SI+1指向下一个字符
0:0693 3CD5       CMP AL,D5                ;比较计数值AL是否=D5H即字符串结束
0:0695 75E6       JNZ 067D                 ;不是则转06E0H处继续显示字符
按键捕捉及延时
0:0697 8B166C04   MOV DX,[046C]            ;从0:046CH地址数据区取时钟基准值到DX
0:069B B411       MOV AH,11                ;设检查扩展键盘状态功能号
0:069D CD16       INT 16                   ;调用INT16H键盘功能取键盘状态
0:069F 7406       JZ 06A7                  ;Z标志=1即未按键则跳转6A7H处继续
0:06A1 B410       MOV AH,10                ;设读取扩展键盘输入功能号
0:06A3 CD16       INT 16                   ;调用INT16H键盘功能读键入的键值
0:06A5 EB0A       JMP 06B1                 ;绝对跳转到06B1H处进入启动过程
0:06A7 A16C04     MOV AX,[046C]            ;从0:046CH地址数据区取当前时钟值到AX
0:06AA 29D0       SUB AX,DX                ;将AX中的当前时钟值与DX中的基准时钟值相减
0:06AC 3D3600     CMP AX,0036              ;比较时钟差值是否大于等于036H
0:06AF 72EA       JB 069B                  ;小于则转069BH处继续循环等待按键
获取启动分区和隐藏分区表指针
0:06B1 8B361C06   MOV SI,[061C]            ;取061CH处的主系统分区表项指针送SI寄存器
0:06B5 8B3E1E06   MOV DI,[061E]            ;取061EH处的隐藏分区表项指针送DI寄存器
F9按键判断及处理
0:06B9 3D0043     CMP AX,4300              ;比较AX寄存器中的按键值是否为F9的键码
0:06BC 7415       JZ 06D3                  ;是则转6D3H处进行隐藏分区启动预处理
主系统分区启动预处理
0:06BE 807D0412   CMP BYTE PTR [DI+04],12  ;比较隐藏分区属性ID是不是12H隐藏标志
0:06C2 741E       JZ 06E2                  ;是则转6E2H开始常规活动分区的启动过程
0:06C4 C6450412   MOV BYTE PTR [DI+04],12  ;为隐藏分区表项加上12H隐藏ID
0:06C8 C60500     MOV BYTE PTR [DI],00     ;除隐藏分区表项的活动分区标志
0:06CB C60480     MOV BYTE PTR [SI],80     ;为主系统分区表项加上活动标志
0:06CE E83A00     CALL 070B                ;调用70BH子过程回写修改过的主引导扇
0:06D1 EB0F       JMP 06E2                 ;转到6E2H开始主系统分区的启动过程
隐藏分区启动预处理
0:06D3 C645040C   MOV BYTE PTR [DI+04],0C  ;将真实的分区属性ID值送隐藏分区表项ID字节处
0:06D7 C60580     MOV BYTE PTR [DI],80     ;为隐藏分区表项加上活动分区标志
0:06DA C60400     MOV BYTE PTR [SI],00     ;清除主系统分区表项的活动标志
0:06DD E82B00     CALL 070B                ;调用70BH子过程回写修改过的主引导扇
0:06E0 89FE       MOV SI,DI                ;将隐藏分区指针DI转换成分区启动时的装入指针
启动分区引导扇装入并执行
0:06E2 89F3       MOV BX,SI                ;将启动分区指针送BX寄存器
0:06E4 BE2006     MOV SI,0620              ;SI=0620H指向INT13H扩展功能服务包
0:06E7 B8007C     MOV AX,7C00              ;AX=7C00H指向分区引导扇装入的偏移址
0:06EA 894404     MOV [SI+04],AX           ;设INT13H扩展功能服务包缓冲区偏移址
0:06ED 8C5C06     MOV [SI+06],DS           ;设INT13H扩展功能服务包缓冲区段址
0:06F0 8B4708     MOV AX,[BX+08]           ;取启动分区表项的隐含扇区低字送到AX
0:06F3 894408     MOV [SI+08],AX           ;设INT13H扩展功能服务包分区引导扇扇区号低字
0:06F6 8B470A     MOV AX,[BX+0A]           ;取启动分区表项的隐含扇区高字送到A
0:06F9 89440A     MOV [SI+0A],AX           ;设INT13H扩展功能服务包分区引导扇扇区号高字
0:06FC B280       MOV DL,80                ;设置INT13H扩展功能调用指向第一硬盘
0:06FE BBAA55     MOV BX,55AA              ;设置INT13H扩展功能调用的BX寄存器参数
0:0701 B80042     MOV AX,4200              ;设置INT13H扩展功能调用的读盘功能
0:0704 CD13       INT 13                   ;调用INT13H扩展功能
0:0706 EA007C0000 JMP 0000:7C00            ;将控制权移交到分区引导程序(主引导结束)
主引导程序回写子过程
0:070B C606BC0674 MOV BYTE PTR [06BC],74   ;恢复6BCH处的代码
0:0710 BB0006     MOV BX,0600              ;设INT13H调用的数据缓冲区指针
0:0713 B90100     MOV CX,0001              ;设INT13H操作指向0柱面1扇区
0:0716 B80103     MOV AX,0301              ;设INT13H写一个扇区的功能
0:0719 BA8000     MOV DX,0080              ;设INT13H操作指向第一硬盘0磁头
0:071C CD13       INT 13                   ;调用常规INT13H功能
0:071E C3         RET                      ;返回调用程序
中文提示一键F9激活隐藏分区程序的内存映像

一键F9初始化程序的内存映像(原文件:1JF9z_0.BIN)
0:7C00  FA 31 C0 8E C0 8E D8 8E-D0 BC 00 7C FB B8 01 02   .1.........|....
0:7C10  BB 00 06 B9 04 00 E8 F3-00 B8 01 02 BB 00 08 B9   ................
0:7C20  03 00 E8 E7 00 BE B8 09-BF B8 07 B9 48 00 F3 A4   ............H...
0:7C30  BE BE 07 BF 04 00 80 7C-04 05 74 55 80 7C 04 0F   .......|..tU.|..
0:7C40  74 4F 57 56 E8 CB 00 BE-70 7D BF 03 0A E8 AD 00   tOWV....p}......
0:7C50  74 39 BE 75 7D BF 52 0A-E8 A2 00 74 1A BE 7B 7D   t9.u}.R....t..{}
0:7C60  BF 36 0A E8 97 00 5E 74-08 A1 11 0A 3D 00 02 75   .6....^t....=..u
0:7C70  1F C6 44 04 0E EB 19 5E-81 7C 0A FA 00 73 06 C6   ..D....^.|...s..
0:7C80  44 04 0B EB 0B C6 44 04-0C EB 05 5E C6 44 04 07   D.....D....^.D..
0:7C90  5F 83 C6 10 4F 75 9F BE-BE 07 BF 04 00 C6 04 00   _...Ou..........
0:7CA0  8A 5C 04 80 FB 07 74 0F-80 FB 0B 74 0A 80 FB 0C   .\....t....t....
0:7CB0  74 05 80 FB 0E 75 16 80-3E 1C 06 00 75 07 C6 04   t....u..>...u...
0:7CC0  80 89 36 1C 06 88 1E D6-06 89 36 1E 06 83 C6 10   ..6.......6.....
0:7CD0  4F 75 CA 8B 36 1C 06 8B-3E 1E 06 39 FE 73 08 E8   Ou..6...>..9.s..
0:7CE0  21 00 EA 31 06 00 00 BB-00 08 E8 19 00 BE 00 08   !..1............
0:7CF0  BF 00 7C B9 00 02 F3 A4-EA 00 7C 00 00 B9 04 00   ..|.......|.....
0:7D00  F3 A6 C3 BB 00 06 B8 01-03 B9 01 00 BA 80 00 CD   ................
0:7D10  13 C3 89 F3 BE 60 7D B8-00 0A 89 44 04 8C 5C 06   .....`}....D..\.
0:7D20  8B 47 08 89 44 08 8B 47-0A 89 44 0A B2 80 BB AA   .G..D..G..D.....
0:7D30  55 B8 00 42 CD 13 C3 00-00 00 00 00 00 00 00 00   U..B............
0:7D40  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0:7D50  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0:7D60  10 00 01 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0:7D70  4E 54 46 53 20 46 41 54-33 32 20 46 41 54 31 36   NTFS FAT32 FAT16
0:7D80  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0:7D90  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0:7DA0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0:7DB0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0:7DC0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0:7DD0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0:7DE0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0:7DF0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 55 AA   ..............U.


一键F9引导程序的内存映像(原文件:1JF9z_3.BIN)
0:0600  FA 33 C0 8E C0 8E D8 8E-D0 BC 00 7C 8B F4 FC BF   .3.........|....
0:0610  00 06 B9 00 01 F3 A5 EA-30 06 00 00 00 00 00 00   ........0.......
0:0620  10 00 01 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0:0630  FB 80 3E BC 06 EB 74 79-BB 00 08 B9 02 00 B8 01   ..>...ty........
0:0640  02 E8 D5 00 89 DE B9 00-01 31 DB AD 03 D8 E2 FB   .........1......
0:0650  83 FB FF 75 5C B8 00 06-B7 07 31 C9 BA 4F 18 CD   ...u\.....1..O..
0:0660  10 B9 15 00 BA C1 00 BB-00 10 B8 00 11 BD 00 08   ................
0:0670  CD 10 B7 00 8D 36 E0 09-BA 01 01 B0 C0 50 B4 02   .....6.......P..
0:0680  FE C2 CD 10 8A 1C B9 01-00 58 FE C0 50 B4 09 CD   .........X..P...
0:0690  10 58 46 3C D5 75 E6 8B-16 6C 04 B4 11 CD 16 74   .XF<.u...l.....t
0:06A0  06 B4 10 CD 16 EB 0A A1-6C 04 29 D0 3D 36 00 72   ........l.).=6.r
0:06B0  EA 8B 36 1C 06 8B 3E 1E-06 3D 00 43 74 15 80 7D   ..6...>..=.Ct..}
0:06C0  04 12 74 1E C6 45 04 12-C6 05 00 C6 04 80 E8 3A   ..t..E.........:
0:06D0  00 EB 0F C6 45 04 0C C6-05 80 C6 04 00 E8 2B 00   ....E.........+.
0:06E0  89 FE 89 F3 BE 20 06 B8-00 7C 89 44 04 8C 5C 06   ..... ...|.D..\.
0:06F0  8B 47 08 89 44 08 8B 47-0A 89 44 0A B2 80 BB AA   .G..D..G..D.....
0:0700  55 B8 00 42 CD 13 EA 00-7C 00 00 C6 06 BC 06 74   U..B....|......t
0:0710  BB 00 06 B9 01 00 B8 01-03 BA 80 00 CD 13 C3 00   ................
0:0720  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0:0730  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0:0740  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0:0750  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0:0760  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0:0770  4E 54 46 53 20 46 41 54-33 32 20 46 41 54 31 36   NTFS FAT32 FAT16
0:0780  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0:0790  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0:07A0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0:07B0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0:07C0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0:07D0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0:07E0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0:07F0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 55 AA   ..............U.

注:粉红是磁盘签名;大红是系统签名;蓝、棕、绿、橙分别代表4个分区表项,此处分区表
项都是空的,这是留给初始化程序装配分区表的空间,实际上初始化程序是将目标磁盘的磁
盘签名+分区表+系统签名,复制到这个相应的位置上。


一键F9汉字点阵扇区映像(原文件:1JF9z_1.BIN)
0:0800  0F 10 3F 40 80 81 80 80-83 80 80 87 80 40 3F 00   ..?@.........@?.
0:0810  80 40 FE 01 01 FE 10 10-E0 20 20 C0 40 40 80 00   .@.......  .@@..
0:0820  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0:0830  10 10 10 13 FE 10 14 1B-30 D1 11 10 10 11 56 20   ........0.....V
0:0840  40 20 20 FE 04 40 40 FE-88 10 90 60 58 8E 04 00   @  ..aa....`X...
0:0850  00 FF 60 60 60 60 61 7F-61 60 60 60 60 60 F0 00   ..````a.a`````..
0:0860  00 87 88 10 10 10 10 08-07 00 00 10 10 08 07 00   ................
0:0870  00 00 80 40 40 40 40 C0-40 40 40 40 40 80 00 00   ...@@@@.@@@@@...
0:0880  01 41 21 37 21 01 01 F7-11 11 12 12 14 28 47 00   .A!7!........(G.
0:0890  10 10 10 FC 10 10 10 FE-10 10 10 10 10 00 FE 00   ................
0:08A0  0C 06 02 01 03 02 02 04-04 08 08 10 20 40 80 00   ............ @..
0:08B0  00 00 00 00 00 80 80 40-20 20 10 08 0E 04 00 00   .......@  ......
0:08C0  21 21 21 37 A9 A9 A2 23-22 24 24 28 30 23 2C 20   !!!7...#"$$(0#,
0:08D0  00 00 00 FE 40 40 48 48-D0 60 60 90 88 0E 04 00   ....aaHH.``.....
0:08E0  08 0F 10 2F 48 0F 08 0F-04 07 0C 12 21 06 18 60   .../H.......!..`
0:08F0  00 FC 00 F8 08 F8 08 F8-00 F8 10 60 80 60 1E 04   ...........`.`..
0:0900  00 3F 02 04 08 1F 03 0C-3F 10 04 08 10 20 42 01   .?......?.... B.
0:0910  7C 80 20 20 40 80 20 10-F8 8C A0 90 88 84 84 00   |.  @. .........
0:0920  10 10 23 20 44 F8 09 13-20 7C 00 00 1D E1 02 04   ..# D... |......
0:0930  40 20 FE 40 40 88 04 FE-94 90 90 90 12 12 0E 00   @ .@@...........
0:0940  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0:0950  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0:0960  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0:0970  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0:0980  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0:0990  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0:09A0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0:09B0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0:09C0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0:09D0  4C 76 79 61 6E 61 6E 00-00 00 00 00 00 00 13 1B   Lvyanan.........
0:09E0  0B 0B 0C 0C 0C 0A 0A 0A-0C 0C 0C 0C 0C 0C 0C 0C   ................
0:09F0  0C 0C 0C 0C 07 07 07 07-07 07 07 07 07 07 55 AA   ..............U.

[ 本帖最后由 CF6896 于 2011-7-7 15:07 编辑 ]
回复

使用道具 举报

14#
发表于 2011-7-18 14:11:12 | 只看该作者
路过 看看Ian
回复

使用道具 举报

15#
发表于 2011-8-13 19:23:31 | 只看该作者
怎么没有深山的onekey,一直在用,感觉不错!
回复

使用道具 举报

16#
发表于 2011-8-18 14:39:42 | 只看该作者

支持

楼主辛苦了!!浏览后希望和好
回复

使用道具 举报

17#
发表于 2011-9-12 16:53:15 | 只看该作者

初来乍到

我来了!
新兵报到
多多指教
回复

使用道具 举报

18#
发表于 2011-11-5 19:37:16 | 只看该作者
不错
支持啦!!!!!!!!!!!!!!!!!!!!!!!!!!!!
回复

使用道具 举报

19#
发表于 2011-12-18 00:59:00 | 只看该作者
支持下这类软件,楼主辛苦
回复

使用道具 举报

20#
发表于 2012-5-4 09:57:19 | 只看该作者
楼主辛苦了,学习了
回复

使用道具 举报

21#
发表于 2012-6-30 21:36:07 | 只看该作者
品牌机做得挺好,特别是笔记本,可惜一格式化C盘就不能用了,开始我不知道,将C盘格了,一键恢复就不能用了,到网上找了好久也没有解决的办法,只好不用了。
回复

使用道具 举报

22#
发表于 2012-8-31 21:04:48 | 只看该作者
版主,辛苦了、、支持!、
回复

使用道具 举报

23#
发表于 2013-4-7 14:32:19 | 只看该作者
支持版主,辛苦了。
回复

使用道具 举报

24#
发表于 2013-4-25 10:28:23 | 只看该作者
谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-4-19 23:38

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表