硬盘的分区表信息对于硬盘的启动非常重要。如果找不到有效的分区表,则即使从软盘启动硬盘也无法启动或找不到硬盘。通常,第一个分区表条目的第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操作系统可以实士顿u盘分区加密_硬盘分区如何加密'/>
在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-353862-1.html
攘外必先安内
呵呵
小日本真正的经验