微型机与应用
MICROCOMPUTER & ITS APPLICATIONS
1999年 第18卷 第2期 Vol.18 No.2 1999



从分区标志谈Win95下的软件保护
齐玉斌
　　摘　要：从MS-DOS和Windows 95形成不同的硬盘分区标志入手，介绍了如何通过改变分区标志达到在MS-DOS或Windows 95环境下彻底隐含逻辑分区，从而对软件进行保护的方法。
　　关键词：分区标志　MS-DOS　Windows 95　软件保护
　　Microsoft Windows 95是新一代的操作系统，是MS-DOS、Windows 3.x操作系统的后继。Windows 95不但具有更友好的用户界面、更直观的工作方式、更出色的性能、易于配置和对现有硬件的更好支持，而且为新一代的软硬件提供了新的功能和强大的支持。
　　Windows 95完全兼容DOS和Windows 3.x，并在此基础上进行了一些内部控制机制、控制标志的改变，笔者在应用实践中，发现了Windows 95分区标志的变化，并由此设计了几个程序，成功地对Windows 95的应用软件进行了保护。
　　在上机过程中发现，使用Windows 95提供的FDISK命令对硬盘进行分区后，启动原来的MS-DOS，则系统不承认逻辑分区的存在，使用转换盘符命令(如D：)出现“Invalid drive specification”提示，使用DOS提供的FDISK查看分区状态，报告有非DOS分区存在，笔者由此进行了一系列的实验、分析工作。
1　查看
　　使用DEBUG命令，调用13号中断，分别查看Windows 95和MS-DOS形成的逻辑分区标志，过程如下：
　　C:＼>DEBUG
　　-A
　　　MOV AX，0201
　　　MOV BX，0200
　　　MOV CX，0001
　　　MOV DX，0080
　　　INT 13
　　　INT 20
　　-D 200
　　-Q
　　结论：Windows 95形成的逻辑分区的分区标志为0FH；MS-DOS形成的逻辑分区标志为05H。
2　改变
　　改变Windows 95的逻辑分区标志，使MS-DOS承认该分区，且Windows 95仍可使用逻辑分区，为了在启动MS-DOS后，可以使用D：、E：等逻辑分区，进行了如下工作：
　　C:＼>DEBUG
　　-A
　　　MOV AX，0201
　　　MOV BX，0200
　　　MOV CX，0001
　　　MOV DX，0080
　　　INT 13
　　　INT 20
　　-E 102 03
　　-E 3D2 05
　　-G
　　-Q
　　这样在启动了MS-DOS后，D：、E：等逻辑分区均已可见，并可在其上进行任何操作，而且在启动Windows 95后，由于Windows 95的兼容性，它可以照样使用逻辑分区，不受任何影响。
3　分析
　　通过以上步骤可看出，Windows 95出于兼容性考虑，承认MS-DOS逻辑分区标志05H的合法性，同时对自身的FDISK命令使用了更新的逻辑分区标志OFH，正是这个更改，使得Windows 95分区形成的逻辑盘在启动MS-DOS后，DOS不承认它们的存在。由此想到，能否在逻辑分区上保存重要文件后，为保密或防病毒等安全性目的而改变逻辑分区标志，使MS-DOS和Windows 95均不承认有逻辑盘存在呢?为此，笔者又进一步进行了分析、实验。
4　实现加密
　　运行DEBUG命令，修改逻辑分区标志为FFH，使MS-DOS和Windows 95均不承认逻辑盘的存在，过程如下。
　　C:＼>DEBUG
　　-A
　　　MOV AX，0201
　　　MOV BX，0200
　　　MOV CX，0001
　　　MOV DX，0080
　　　INT 13
　　　INT 20
　　-E 102 03
　　-E 3D2 FF
　　-G
　　-Q
　　分别启动MS-DOS和Windows 95发现，二者均不承认逻辑盘的存在，从而保护了在逻辑盘上存放的软件。当然想让MS-DOS和Windows 95共同承认或MS-DOS不承认而Windows 95承认逻辑分区的存在，只要按以上方法将逻辑分区标志改为05H或0FH就可以了。
5　简化操作，形成命令文件
　　通过以上过程，读者可能对逻辑分区标志有了较深的认识，但对其修改时都要借助DEBUG命令，这样步骤多、速度慢、易出错(由于是对硬盘主引导扇区进行操作，故一旦操作出错，硬盘将不能启动，硬盘上软件、数据遗失贻尽，损失巨大)，于是笔者将承认或不承认逻辑盘的存在分别编制了3个命令文件，分别对应MS-DOS和Windows 95均承认逻辑盘、Windows 95承认而MS-DOS不承认逻辑盘、Windows 95和MS-DOS均不承认逻辑盘3种情况。形成的命令文件分别为05.COM、OF.COM、FF.COM。过程如下：
　　C:＼>DEBUG
　　-A
　　　MOV AX，0201
　　　MOV BX，0200
　　　MOV CX，0001
　　　MOV DX，0080
　　　INT 13
　　　MOV AL，05
　　　MOV ［03D2］，AL
　　　MOV AX，0301
　　　MOV BX，0200
　　　MOV CX，0001
　　　MOV DX，0080
　　　INT 13
　　　INT 20
　　-RCX 200
　　-N 05.COM
　　-W
　　-Q
　　这样就得到了05.COM命令文件。0F.COM和FF.COM文件的形成只需将以上的05处换为0FH、FFH即可。
　　这样只要运行相应的命令，当微机再次启动后，即可达到相应的目的。
6　结束语
　　本文介绍的方法，可以保护在MS-DOS或Windows 95环境下逻辑分区盘上数据的安全，实用性很强。另外，笔者还编制了程序，可以在MS-DOS或Windows 95下，对多个逻辑分区盘分别进行不同分区标志的设定，如可以在MS-DOS或Windows 95环境承认逻辑分区D盘的存在，而不承认逻辑分区E盘的存在。
作者单位：昌黎河北农业技术师范学院教务处(066600)
(收稿日期：1998-08-10)
