一、修改硬盘分区表信息
硬盘分区表信息对硬盘的启动至关重要,如果找不到有效的分区表,将不能从硬盘启动或即使从软盘启动也找不到硬盘,
硬盘加密的几种方法
。通常,第一个分区表项的第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扇区就可以了。
上面的加密处理,对一般用户来讲已足够了,
电脑资料
《硬盘加密的几种方法》(https://www.unjs.com)。但对有经验的用户,即使硬盘不可访问,也可以用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磁头1扇区的主引导记录读入内存0000:7c00h处执行,而我们已经偷梁换柱,将0柱面0磁头1扇区变为我们自己设计的程序。这样从硬盘启动时,首先执行的不是主引导程序,而是我们设计的程序。在执行我们设计的程序时,口令若不对则无法继续执行,也就无法启动了。即使从软盘启动,由于0柱面0磁头1扇区不再有分区信息,硬盘也不能被访问了。当然还可以将我们设计的程序像病毒一样,将其中一部分驻留在高端内存,监视int 13h的使用,防止0柱面0磁头1扇区被改写。$page_devide$