
硬盘的分区表信息对于硬盘的启动非常重要。如果找不到有效的分区表,则即使启动了软盘,也无法启动硬盘或找不到硬盘。通常,第一个分区表条目的第0小节为80H,表示C驱动器是活动的DOS分区,是否可以引导硬盘取决于它。
如果将字节更改为00H,则无法启动硬盘,但是从软盘启动后仍可以访问硬盘。分区表的第4个字节是分区类型标志。这里的第一个分区通常是06H,这意味着C驱动器是活动的DOS分区。如果您在此处修改第一个分区,则可以对硬盘进行加密。
特定于:
1.如果字节更改为0,则表示未使用该分区,并且当然不能从C驱动器引导该分区。从软盘启动后,原始的C驱动器消失了,您看到的C驱动器为原始的D驱动器,D的驱动器为原始的E驱动器,依此类推。
2.如果将此处的字节更改为05H,不仅不能从硬盘引导,即使从软盘引导,硬盘的每个逻辑磁盘也无法访问,这意味着整个磁盘都无法访问。硬盘已加密。此外,硬盘主启动记录的有效标记是该扇区的最后两个字节为55AAH。如果两个字节都更改为0,则整个硬盘可以被锁定并且无法访问。硬盘分区表位于物理0柱面0磁头1扇区中,可以在Norton for Win95中使用Diskedit直接调用该扇区,并在修改后将其保存。或使用Debug下INT 13H的02H子功能将0柱面0磁头1扇区读入存储器,修改相应位置,然后使用INT 13H 03H子功能将0柱面0磁头1扇区写入。上

上述加密处理对于一般用户而言已足够。但是对于有经验的用户,即使无法访问硬盘,也可以使用INT 13H的02H子功能读取0柱面0磁头1扇区,并根据经验修改相应的位置数据以解锁硬盘位置数据通常在某些情况下是固定的或受限制的。
另一种安全但笨拙的方法是备份硬盘的分区表项,然后将它们全部更改为0,以使其他人因为不知道分区信息而无法解锁和访问硬盘。
二、为硬盘启动添加密码
我们知道可以在CMOS中设置系统密码,以便非法用户无法启动计算机,当然也不能使用硬盘。但这并不能真正锁定硬盘驱动器,因为只要硬盘驱动器挂在另一台计算机上,硬盘上的数据和软件仍然可以使用。要添加用于硬盘启动的密码,您可以先将硬盘0柱面0头1扇区的主引导记录和分区信息存储在硬盘不使用的隐藏扇区中,例如0柱面0头3扇区。
然后使用Debug重写一个不超过512字节的程序(实际上,多于100字节就足够了)并将其加载到硬盘0柱面0磁头1扇区中。该程序的功能是在执行密码时首先输入密码。如果密码不正确,将进入无限循环。如果密码正确,它将读取硬盘上包含主引导记录和分区信息(0柱面0磁头3扇区)区域的隐藏扇区,然后执行主引导记录。
由于硬盘启动时,BIOS首先调用引导加载程序INT 19H来将主硬盘的0柱面0磁头0头1扇区的主引导记录读入内存中的0000:7C00H进行执行,已经窃取了并更改了0缸0头1扇区,这是我们自己设计的程序。这样,从硬盘启动时,第一次执行的不是主引导程序,而是我们设计的程序。
在执行我们设计的程序时,如果密码不正确,将无法继续执行并且无法开始执行。即使从软盘启动,也无法访问硬盘,因为0柱面0磁头1扇区不再具有分区信息。当然,我们也可以像病毒一样设计程序,其中一些驻留在高端内存中,监视INT 13H的使用,以防止0圆柱0磁头1扇区被重写。
三、在硬盘上实施用户加密管理
UNIX操作系统可以实现多用户管理。在DOS系统下,可以改进硬盘管理系统,也可以实现类似的功能。管理系统可以满足以下要求:
1.将硬盘分为公用分区C和几个专用分区D。其中,“超级用户”管理C区,可以读写C区并更新系统; “特殊用户”(例如机房内部人员)通过密码使用自己的分区来保护其文件和数据; “一般用户”(例如,去计算机室登机的普通人)任意使用指定的公共分区。后两个用户无法写入C驱动器,因此,如果在C驱动器上安装了操作系统和大量应用程序软件,则可以防止公共计算机室中的其他人有意或无意地破坏系统和软件。 ,确保系统的安全性和稳定性。

2.系统启动时,需要使用软盘密钥启动系统,否则硬盘被锁定并且无法使用。可以通过使用硬盘分区表中每个逻辑磁盘的分区链接列表结构并使用汇编编程来实现此方法。
四、实现对逻辑磁盘的写保护
我们知道软盘上存在写保护间隙。在写入软盘之前,BIOS必须检查软盘的状态。如果写保护间隙被密封,则无法执行写操作。对于硬盘,写保护功能不能在硬件上实现,但可以通过软件实现。
在DOS系统下,磁盘写操作包括以下几种情况:
①COMMAND.COM支持的写操作,例如MD,RD,COPY等;
②DOS功能调用中的某些子功能,例如功能号10H,13H,3EH,5BH等,可以写入硬盘;
③通过INT 26H将逻辑扇区转换为绝对扇区以进行写入;
④通过INT 13H,03H,05H等子功能号写入磁盘。但是每种写操作都必须调用INT 13H子功能才能最终实现。
因此,如果拦截INT 13H,则可以禁止对硬盘的特定逻辑磁盘进行写操作。由于磁盘上文件的写操作是通过INT 13H的03H子功能完成的,因此在调用该子功能时,寄存器CL代表起始扇区号(实际上仅使用低6位);因此,该寄存器中的值仅代表低字节。 CH代表轨道号,它是圆柱号,由10位数字表示,最高的两位数字位于CL的最高两位数字中。
对硬盘进行分区时,可以将硬盘分为多个逻辑驱动器,每个逻辑驱动器都从某个完整的柱面开始。例如,作者的硬盘为2. 5GB,分为五个磁盘:C,D,E,F和G。磁盘C的起始柱面数为00H,磁盘D为66H,磁盘E为E5H ,磁盘F为164H,磁盘G为26BH。如果截取了INT 13H,则当AH = 03H时,且CL和CH的高两位表示的柱面数大于E4H且小于164H,则不做任何返回就可以禁止写入E盘
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/dianqi/article-339960-1.html
人家10多20年的东西拿出来照样用
我就为了这个更新了~比上一版9
您好