我去年曾发过一个帖子那位有办法能在DOS中让隐藏分区可见吗?,里面提到了两个思路:
第一种思路:在系统恢复盘的引导扇区中加入一段程序,它驻留内存后接管Int13H,凡是对备份分区的ID的读取(1BH),均返回0BH即可见分区。后来的DOS启动后,此分区自然可见了。这是类似引导型病毒的做法。
第二种思路:在系统恢复盘的DOS启动后,由一个程序查找隐藏的备份分区,并将它作为一个正常的FAT32分区添加到DOS的设备链上,并赋以相应的盘符。这是类似NTFS4DOS的做法。
希望有人能够利用这个思路做点工具出来,可是很久还是没有见到,我自己也懒得理了,开始用批处理来查找分区供GHOST调用。
今年又看到这个帖子,终于不想偷懒,由于我对DOS的细节还是不清楚,就写个引导程序来做了。终于有了结果,在Bochs-2.1.1和VM里测试通过,能够欺骗DOS在启动后为1B和1C格式的隐藏分区分配盘符。在这里拿出来希望朋友们能够帮忙用多余的真实硬盘测试一下。(特别提醒,我保证程序中没有写MBR的代码,可是难保一切意外的发生,最好用没保存重要数据的真实硬盘来做!)
下载地址:
已经改成8月23日编译的了,见附件。
测试方法:
解压下载的ZIP文件,准备一个启动盘镜像文件。
运行解压目录里的镜像修改程序,格式
MAKEIMG <原镜像文件> <新镜像文件>
生成的新镜像文件即可在虚拟机中测试,如要在真实机器里测试可写入软盘或用VFLOPPY等软件来做。
VMware截图:



下面是编程的记录:
这是一个用来引导我的系统备份/恢复光盘的启动软盘的程序,将会放在软盘的第一个扇区内。此程序引导系统时,出现一个提示,用户可选择按任意键启动工具软盘,也可以在等待8秒后引导硬盘上的操作系统。在选择由工具软盘启动DOS后,在MBR中隐藏的FAT32主分区(0B/0C)将会分配盘符变得可见,这就可以用常规工具来做备份了——备份在隐藏分区里,看谁能删得掉!
最后版本:2005/7/23 2005/6/29
后记:
6月29日的版本只处理了传统INT13的2号功能,所以在虚拟机中的小硬盘(1B-FAT32)中调试正常,一到了用LBA方式读取的分区(1C-FAT32LBA,1E-FAT16LBA)就完了。可是现在的硬盘已经没有8GB以下的了,读取也几乎全是用LBA方式了。
7月23日:
加入对扩展INT3读取(42号)功能的接管,实现对隐藏LBA分区的读取,由于现在硬盘分区几乎没有用FAT16的了,所以只处理了FAT32的。
由于新代码的加入,我原来的提示信息也不得已剪了一部分。
【目前最新版本】
HFBOOT.ASM还是9月1日的,MAKEIMG.EXE在9月5日新增选项后编译
新的命令行如下:
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 卸载本程序,将由本程序生成的镜像文件还原,结果保存成一个镜像文件。
希望下载和使用了这个软件的朋友跟帖或到我的小站留言谈一下看法。
[ Last edited by TurboY on 2005-9-6 at 15:38 ]
第一种思路:在系统恢复盘的引导扇区中加入一段程序,它驻留内存后接管Int13H,凡是对备份分区的ID的读取(1BH),均返回0BH即可见分区。后来的DOS启动后,此分区自然可见了。这是类似引导型病毒的做法。
第二种思路:在系统恢复盘的DOS启动后,由一个程序查找隐藏的备份分区,并将它作为一个正常的FAT32分区添加到DOS的设备链上,并赋以相应的盘符。这是类似NTFS4DOS的做法。
希望有人能够利用这个思路做点工具出来,可是很久还是没有见到,我自己也懒得理了,开始用批处理来查找分区供GHOST调用。
今年又看到这个帖子,终于不想偷懒,由于我对DOS的细节还是不清楚,就写个引导程序来做了。终于有了结果,在Bochs-2.1.1和VM里测试通过,能够欺骗DOS在启动后为1B和1C格式的隐藏分区分配盘符。在这里拿出来希望朋友们能够帮忙用多余的真实硬盘测试一下。(特别提醒,我保证程序中没有写MBR的代码,可是难保一切意外的发生,最好用没保存重要数据的真实硬盘来做!)
下载地址:
已经改成8月23日编译的了,见附件。
测试方法:
解压下载的ZIP文件,准备一个启动盘镜像文件。
运行解压目录里的镜像修改程序,格式
MAKEIMG <原镜像文件> <新镜像文件>
生成的新镜像文件即可在虚拟机中测试,如要在真实机器里测试可写入软盘或用VFLOPPY等软件来做。
VMware截图:



下面是编程的记录:
这是一个用来引导我的系统备份/恢复光盘的启动软盘的程序,将会放在软盘的第一个扇区内。此程序引导系统时,出现一个提示,用户可选择按任意键启动工具软盘,也可以在等待8秒后引导硬盘上的操作系统。在选择由工具软盘启动DOS后,在MBR中隐藏的FAT32主分区(0B/0C)将会分配盘符变得可见,这就可以用常规工具来做备份了——备份在隐藏分区里,看谁能删得掉!
最后版本:2005/7/23 2005/6/29
后记:
6月29日的版本只处理了传统INT13的2号功能,所以在虚拟机中的小硬盘(1B-FAT32)中调试正常,一到了用LBA方式读取的分区(1C-FAT32LBA,1E-FAT16LBA)就完了。可是现在的硬盘已经没有8GB以下的了,读取也几乎全是用LBA方式了。
7月23日:
加入对扩展INT3读取(42号)功能的接管,实现对隐藏LBA分区的读取,由于现在硬盘分区几乎没有用FAT16的了,所以只处理了FAT32的。
由于新代码的加入,我原来的提示信息也不得已剪了一部分。
【目前最新版本】
HFBOOT.ASM还是9月1日的,MAKEIMG.EXE在9月5日新增选项后编译
新的命令行如下:
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 卸载本程序,将由本程序生成的镜像文件还原,结果保存成一个镜像文件。
希望下载和使用了这个软件的朋友跟帖或到我的小站留言谈一下看法。
[ Last edited by TurboY on 2005-9-6 at 15:38 ]

I。这可真是……