|
[这个贴子最后由turboy在 2006/01/19 10:45pm 第 9 次编辑]
【程序的历史】
这帖子最早发在DOS联盟论坛上,后来无忧的 hnlyzhd 版主转了过来。http://bbs.wuyou.net/cgi-bin/top ... topic=10153&show=75
原因是这样的:我曾帮一个卖电脑的朋友做过类似一键恢复的程序,就是用WBAT等批处理工具来包装Ghost,把备份保存在最后一个分区的\SYSBCK目录下,备份和恢复一次只要几分钟。我给他演示的时候效果还不错,但不久他就沮丧地告诉我:“客户在F盘发现了一个隐藏的大文件夹,里面的文件双击又不能打开,就当垃圾文件删掉了!”--我真是欲哭无泪!我已经作了隐藏,用户手册上也写了,但客户还是会自作聪明地去删掉它--看来客户的问题的确是千奇百怪。后来我想能否有这样一种方法,就是划出一个分区来单独保存系统备份,在备份完成后将此分区隐藏。这样客户的操作系统启动后怎么也看不到备份盘了,这就避免了备份被删除的尴尬。用我们的系统恢复盘启动时,这个备份分区又可见了,一切就和没有隐藏一样,可以恢复也可以更新备份。这样不就方便、安全多了。当时我把这个想法放在论坛里给大家讨论。http://www.cn-dos.net/forum/viewthread.php?tid=12660&fpage=1
事隔一年了,一直没人写类似的程序,只好自己来写。由于我对DOS的细节还是不清楚,就写个引导程序来做了。自己努力了一阵子终于有了结果,在Bochs-2.1.1和VMWare以及我管理的二十多台清华同方P4电脑里测试通过,能够欺骗DOS在启动后为11、14、16、1B和1C、1E格式的隐藏分区分配盘符。
【程序说明】
这是一个用来引导系统备份/恢复光盘的程序,将会放在启动软盘镜像的第一个扇区内。此程序引导系统时,出现一个提示,用户可选择按任意键启动工具软盘,也可以在等待8秒后引导硬盘上的操作系统。在选择由工具软盘启动DOS后,在MBR中隐藏的主分区将会分配盘符变得可见,这就可以用常规工具来做备份了!如果不用这个工具启动,这些备份分区就不可见,这样普通用户就无法删除备份数据了。
[UploadFile=yrt1_1125109743.jpg]
[UploadFile=yrt2_1125109806.jpg]
[UploadFile=yrt3_1125109867.jpg]
注意:上面的截图是7月23日版的,只支持FAT32隐藏分区(1B/1C),8月23日版本已经可支持FAT32/FAT16所有(01-11,04-14,06-16,07-17,0B-1B,0C-1C,0E-1E)分区类型了。
【使用方法】
1. 在硬盘上划分出一个新的主分区(FAT16/FAT32类型),可用PQMAGIC或GDISK来做(微软的FDISK不允许创建两个主分区)。通常这个新的主分区在启动后会被分配为最后一个盘符——这可供做备份工具的朋友们参考。
2. 用PQMAGIC或GDISK将这个新建的主分区隐藏,达到DOS正常启动后无法看到的目的。
3. 准备一个1.44M启动软盘的镜像文件,如DOS.IMG。要确保此镜像可以启动DOS。
4. 运行我提供的MAKEIMG.EXE制作出具备可以显隐藏分区功能的启动盘镜像NEWDOS.IMG,命令如下:
MAKEIMG DOS.IMG NEWDOS.IMG
5. 将生成的NEWDOS.IMG写入软盘或作为光盘的启动镜像或在虚拟机中直接启动,就可以看到那个被隐藏的主分区已经被分配了盘符。余下的就是向里面复制软件、备份数据等自己的事儿了。
【查找此分区的方法建议】
方法一:在备份分区的根目录下建一个特殊名字的文件,然后用IF EXIST 命令来判断。
方法二:用GDISK 1 /STATUS来得到分区状态,然后用程序分析。
【特别提醒】
我保证程序中没有写硬盘MBR的代码,可是难保一切意外的发生,最好用没保存重要数据的真实硬盘测试通过后正式使用!
【目前最新版本:2008年10月21日编译】
HFBOOT.ASM还是9月1日的,MAKEIMG.EXE在9月5日新增选项后编译
hnlyzhd版主所提出启动安装在隐藏分区内的操作系统的功能现在终于真正实现了,新程序在启动时出现的8秒等待中如果按了F7键(或自定义的键),则会从第一个隐藏主分区启动,此盘分配为C:。目前我只测试了DOS7.1(Win98启动盘),我想应该也能启动WIN98。WinXP启动后会将隐藏分区变成非隐藏,用硬盘重启后仍是可显示的,肯定时WinXP在什么时候更新过MBR。LINUX没有试。
目前使用本程序启动后,可以成功令DOS为隐藏分区分配盘符。
在MS-FDISK、FREE-FDISK、AEFDISK、PQMAGIC、Acronis Disk Editor等大多数程序中隐藏分区都会以正常分区显示,但GDISK却可以看出此分区为隐藏分区,GDISK一定有超越BIOS中断的独特存取硬盘方法。
crshen朋友帮我发现了几处严重的BUG,这些BUG由于DOS启动时根本没有用到所以我以前没发现。
新加入一个功能ESC键:可以不加载本程序,正常从硬盘盘启动,。
新加入一个功能F5键:可以不加载本程序,正常从软盘盘启动,用于需要正确查看实际分区时。
MAKEIMG.EXE的命令行选项可以忽略大小写了。
新的命令行如下:
MAKEIMG 源镜像文件名 [目的镜像文件名] [选项]
源镜像文件名 用来制作显隐藏分区功能的软盘镜像文件
目的镜像文件名 将要生成的带显隐藏分区功能的软盘镜像文件,可省略,默认值为YISIR.IMG
可选参数:
/f 生成的程序在计算机启动时直接从软盘启动。
/b 生成的程序在计算机启动时直接激活隐藏分区并启动。(注意隐藏分区中必须已安装了操作系统,此功能也未写MBR)
无 /f 和 /b 参数时将出现提示并等待8秒,这期间按任意键从软盘启动,否则从硬盘启动且不加载显隐藏分区功能。
/k:n n=1-4,6-12。设置直接激活隐藏分区并启动时用的按键,可以是F1-F4、F6-F12
/p:nn=0 - 255 ,自定义构成进度条的字符,默认是62即“>”,象219(实心方块)、220、223也挺好看
/r:nn=1 - 24 ,自定义提示信息的在屏幕中的开始行,默认是21行,即在21行显示提示,22行显示进度条。
/u 卸载本程序,将由本程序生成的镜像文件还原,结果保存成一个镜像文件。
希望下载和使用了这个软件的朋友跟帖或到我的小站留言谈一下看法。
2008年10月31日
应天风、紫狐的要求又翻出源程序来,加上了对0x12->0x0c分区的映射。MAKEIMG.EXE现在是用VC6编译的Windows控制台程序了。
这里是最新的软件:
BootHide.rar
(30.53 KB, 下载次数: 439)
20050905的版本在这里[UploadFile=boothide060119_1137658632.zip]
新加入一个配套程序UNLOAD.COM,用于还原程序所修改的INT13中断为系统原值。
[UploadFile=screen_1137681571.gif]
[ 本帖最后由 turboy 于 2008-10-31 15:59 编辑 ] |
-
-
BootHide.rar
30.53 KB, 下载次数: 482, 下载积分: 无忧币 -2
BootHide Build20081021
|