1.解开硬盘逻辑死锁的硬盘一种有效方法
2.如何做硬盘锁
3.如何解密硬盘密码
解开硬盘逻辑死锁的一种有效方法
一·序言
不知道你是否曾碰到过从软盘和硬盘都启动不了计算机的情形?一般计算机的硬盘分区表被病毒感染后,若不能启动机子,锁源通常从软盘可以启动。硬盘但在严重的锁源情形下 ,不但从硬盘不能启动机子,硬盘就是锁源音乐播放器 android 源码从软盘也不能启动。有的硬盘恶毒的病毒就能使硬盘被死锁。笔者一次在自己机子上玩弄硬盘锁时,锁源就被锁住过一次。硬盘结果在硬盘下选择DOS或WIN模 式启动机子都死机,锁源在软盘下用DOS启动也死机;在COMS中将硬盘类型选择None,硬盘虽然可以从软盘启动,锁源但启动后没有硬盘,硬盘使用软盘上的锁源FDISK命令,想重新分区或格式化都没门。硬盘 弄得我一筹莫展。
本来,硬盘被锁住时,可以采用3.0以下的DOS版本启动机子,机子启动后虽然也不认硬盘,但其不认的原因在于其管理不了现在的大硬盘,因此可以用Debug修改硬盘 分区表,修改后可以启动。但在已进入WINDOWS的年代,3.0以下的DOS实难找到,即使找到,你的机子上恐怕也因没有5寸软驱而不能使用。因此,最好的办法是编制一个程序来解决 这个问题。笔者通过尝试和思考,找到一种比较实用的方法,可以轻松解开死锁的硬盘,当然也把自己的硬盘解开了。下面,我将这种方法介绍出来。
二·硬盘锁住原理
硬盘锁住通常是图们源码开发对硬盘的分区表做手脚,因此首先应该了解硬盘的分区表。硬盘分区表位于0柱面0磁头1区,这个扇区的前面多个字节是主引导程序,后面从BEH 开始的个字节是分区表。分区表共字节,分为4栏,每栏字节,用来描述一个分区。如果是用DOS的FDISK程序分区后,最多只用两栏,第一栏描述基本的DOS分区,第二栏描述 扩展的DOS分区。
分区表一栏的结构与各字节的含义如下:
H-标志活动字节,活动DOS分区为H,其它为H。
H-本分区逻辑0扇区所在的磁头号。
H-逻辑0扇区所在柱面中的扇区号。
H-逻辑0扇区所在的柱面号。
H-分区类型标志。
H-本分区最后一个扇区的磁头号。
H-最后一个扇区的扇区号。
H-最后一个柱面的柱面号。
H-硬盘上在本分区之前的扇区总数,用双字表示。
0CH-本分区的扇区总数,从逻辑0扇区计数,不含隐藏扇区,用双字表示。
在上面的介绍中给出的柱面号与扇区号虽然各占一个字节,但实际上扇区号用6位表示,柱面号用位表示,扇区号所在字节的最高两位实际上是柱面号的最高两位。
分区表的最后两个字节是分区表的有效标志,如果将其改变,将不能从硬盘启动,源码提取函数这是一种简单的锁住硬盘的方法。解决的办法是从软盘启动,启动后硬盘仍然可以 使用。用Debug或Noratn中的Diskedit软件将硬盘该分区表中的标志恢复,则从硬盘启动也没有问题了。锁住硬盘的另一种方法是对分区参数做手脚,如果将分区参数全部变为0,则 启动时由于找不到分区参数,从硬盘是没法启动,从软盘启动后也不认硬盘,如果你敲入盘符C并回车,将出现提示Invalid
driver
specification。但所幸的是,毕竟可以启动机子,不认硬盘没关系,在A盘上用DOS的Debug仍然可以读出硬盘0柱面0磁头1扇区的内容,修改后再写入0柱面0磁头1扇 区,重新启动机子又没问题了。如果将分区表参数随意改为其它参数,则有可能不能用可以安装DOS的DOS系统盘启动,按F3退出后将出现内存分配错误,不能装载DOS的命令解释 器COMMAND的提示,系统就死机了,笔者就曾碰见过这种情形。但用一张格式化成系统盘的软盘则可以顺利启动,只要有Debug,你仍然可以将分区表参数修改回去。可怕的事情是, 如果你不幸将分区表参数改成一个循环链,即C盘的下一个分区指向D驱,D驱的下一个分区又指向C区,这样循环下去,DOS启动或WIN启动时由于无休止的读取逻辑驱动器,就只有 死机的份了。这是商业应用源码只要有硬盘存在,不管你用软盘还是硬盘都没法启动机子了,由于不能启动是由于硬盘造成的,即使你将硬盘下到其它计算机上,也没法使用,这样硬盘就彻底被 锁死了,笔者所遭遇就是此情形。不信,你只需将硬盘0柱面0磁头1扇区的1D0H处改为1(如果你的D驱开始柱面号不够大,此处本来就为1),将1D1H处改为0,表示D盘的开始柱面号 跟C盘一样,看看你的计算机还能不能启动,不过你在没有充分的准备前绝不要试。
一个完整的硬盘锁程序,不过是重新改写0柱面0磁头1扇区的引导程序,并将分区表破坏或故意制造一个循环分区表,而将真正的硬盘分区表参数和引导程序放在其它 隐藏扇区并保护起来,如果启动时口令不对,则不能启动机子,口令对了则顺利启动。这种硬盘锁程序,情形好的还可以用软盘启动;情形严重的就是连软盘也不能启动,硬盘真被 锁住。
三·解开硬盘锁的程序法
如果硬盘被锁死,是否真的就无法解开呢?当然不是。看看问题的症结所在,根源在于DOS中的IO.SYS文件,它包含LOADER、IO1、IO2、IO3四个模块,其中IO1中包含 有一个很关键的程序SysInt_I,它在启动中很固执,非要去读分区表,而且不把分区表读完誓不罢休。pp页面源码如果碰上分区表是循环的,它就只有死机了。这是DOS的脆弱性和不完备性。其 实这也不能怪DOS,因为DOS为了获得硬盘使用权,就必需读分区表参数,而且DOS还约定驱动器号不能超过,只不过没有考虑到此等循环分区表情形。一句话,机子不能启动不过是 DOS操作系统造成的,如果另写一个操作系统,或许就能启动机子。当然这只是说个笑话。
明白了病因在于DOS,问题就好办了。DOS启动中不是要读硬盘分区表吗?我不让你读分区表甚至连硬盘都不让你读,不就可以顺利启动了。的确是这样的,开硬盘锁 的程序实现方法就是基于这个思想形成的。当然,这只有从软盘启动着手了。
看看计算机的启动过程,上电首先进行的多项硬件自测跟我们没有关系,我们关心的只是它最开始和磁盘打交道时是干什么。如果选择从硬盘启动,则计算机和磁盘 最开始打交道是将硬盘0柱面0磁头1扇区的内容读入内存:7C处并跳到:7C处执行;如果选择从软盘启动,则计算机和磁盘最开始打交道是将A盘0磁道0磁头1扇区的内容 读入内存:7C处并跳到:7C处执行,在执行过程中,计算机并不检查该扇区的内容是什么,只机械地执行读命令,这使得许多系统型病毒得以生存。但利用这一点,恰 恰使我们的程序解锁法有了用武之地。如果我们用DOS格式化一张可以启动机子的系统软盘,将该软盘的0磁道0磁头1扇区的内容移到后面的空白扇区中,而重新写一段程序到该软盘 的0磁道0磁头1扇区,这样用软盘启动时首先执行的是我们所写的程序了。在这段程序中,具备这样一些功能:在DOS启动前抢先拦截INT
H,驻留高端内存并监视INT
H,判断是否读硬盘,如果是读硬盘就直接返回,这样就禁止了读硬盘,也就避免了DOS读硬盘循环分区表造成的死机;同时拦截对软盘的读取,如果读软盘的0磁道 0磁头1扇区,就改成读真正有引导程序和磁盘参数表的扇区,免得DOS在启动中找不到软盘的磁盘参数表而死机。完成这些任务的同时,还要读取软盘真正的引导程序并把控制权交给 它。
该方法可以称为万能的,因为它在用软盘启动中,始终不与硬盘打交道,这样不管你硬盘用什么方法加锁了,对DOS的启动都没有影响。当然,这样启动的机子是不认 硬盘的,但这没有关系。你可在机子启动后,用Debug调出驻留高端内存的新INT
H程序,将其改为只有一条直接执行旧INT H的语句,这样在Debug下可以用INT
H读取硬盘0柱面0磁头1扇区的内容,如果你有备份,将分区表参数恢复后再写入0柱面0磁头1扇区,重新启动计算机就可以了。如果实在没有备份,去掉分区表中的 循环链,用正常DOS启动盘重启机子后至少也可以重新对硬盘分区,不至于硬盘被锁住打不开了。
四·程序及说明
1·下面是写入软盘0磁道0头1扇区的源程序key.com,程序用debug输入。
Cdebug
-a
CLI
XOR AX,AX
MOV DS,AX
MOV ES,AX
MOV SS,AX
MOV AX,7C
C MOV SP,AX
E STI
F MOV SI,AX
MOV DI,7E
CLD
MOV CX,
REPNZ
MOVSB
A JMP :7E1F
F MOV CX,
PUSH CX
MOV AX,;读启动软盘的引导扇区
MOV BX,7C
MOV CX,4F
C MOV DX,
F INT
POP CX
DEC CX
JNZ
MOV AX,[C];抢先获取INT H的位置
MOV [7E],AX
B MOV AX,[E]
E MOV [7E8A],AX
MOV AX,[]
DEC AX
MOV [],AX
MOV CL,
A SHL AX,CL
C MOV ES,AX
E XOR AX,AX
MOV DS,AX
MOV SI,7E6D;复制改写的INT H程序到高端内存
MOV DI,
MOV CX,
B REPNZ
C MOVSB
D MOV AX,;将新INT H位置写入中断向量表
MOV [C],AX
MOV AX,ES
MOV [E],AX
JMP :7C
D PUSHF;新INT H程序
E CMP DX,;是否是硬盘
JNZ ;不是硬盘则继续
POPF
IRET;是硬盘则直接返回
CMP DX, ;是否读软盘BOOT区?
JNZ
B CMP CX,
E JNZ
MOV CX,4F;是则读磁道1磁头1扇区
MOV DX,
POPF
JMP :;此处跳转去执行旧INT ,
;旧INT H的位置由前面程序获得后写入。
N key.com
RCX
W
Q
2·程序的装载
在进行下面工作前,先用DOS格式化一张启动的系统盘,并保证没有坏扇区,最好进行启动测试,确保其可以启动机子。由于现在机子上大多只有3寸软驱,因此选 择1.M的3.5寸软盘。然后用debug
key.com将程序key.com调入内存偏移地址为H,同时在H处写入一段装载程序。即:
Cdebug key.com
-a
MOV CX,
PUSH CX
MOV AX,;将A盘引导程序读入内存H处
MOV BX,;为确保成功,首次采用重复读3次
A MOV CX,
D MOV DX,
INT
POP CX
DEC CX
JNZ
MOV AX,;将已读入内存的软盘引导程序写入软盘
MOV BX,;最后一个磁道的首扇区
C MOV CX,4F
F MOV DX,
INT
MOV AX,;将key.com程序写入软盘0磁道0磁头1扇区
MOV BX,
A MOV CX,
D MOV DX,
INT
INT 3
为保证万无一失,最好将软盘这两个扇区的内容重新读出来看一看,以保证写成功了。做好这一切,保险的还是进行一次测试,即用该软盘启动一次机子,看能否成 功,若成功启动,你就可以用循环分区表法锁住硬盘,看从正常DOS下能否启动,然后再用此软盘启动机子试试,看看功效如何?
从该软盘启动后,不认硬盘,并且在高端内存驻留了新INT
H程序,该段程序实际上是key.com中从D到部分。由于有此段程序存在,在debug下也无法读硬盘,也就没法恢复硬盘分区表,因此机子启动后首先应修改这段 程序。现在的机子基本内存通常都为K,这样这段程序就位于内存中9FC0:处,在debug下,用U9FC0:0显示这段程序,可以看到位于9FC0:A处是一条跳转指令,该跳转指 令即转去执行最原始的INT
H。由于BIOS版本不一样,跳转指令指向的位置可能不一样,如笔者机子上是一条JMP
F:A5D4语句。这时在在debug下编写这样一语句:a9FC0:0 JMP
F:A5D4。这样,对硬盘的禁写与禁读都不再起作用了,在debug下用INT
H的2号子功能可以读出硬盘分区表,修改恢复后再用3号子功能将数据写回分区表。退出debug,重新用正常DOS启动计算机,就可以了。
附带提一下,在正常DOS下,该软盘由于没有BOOT区,也就没有磁盘参数表,从而不能使用,用DIR A:命令会出现General
failure reading drive A提示。不要理睬它,这并不影响它作特殊启动盘。
五·建议
为更好的保护你的硬盘,笔者建议你最好将你的硬盘分区表信息备份起来。备份有两种方式,一种是以文件形式将硬盘每个逻辑盘的分区信息存储起来;另一种是将 分区信息备份在硬盘隐藏扇区里。比如可以将0柱面0磁头1扇区备份在0柱面0磁头3扇区,将D盘开始柱面号0磁头1扇区备份在该柱面0磁头3扇区,其它逻辑盘也如此。这种方法简单、 方便,也很可靠。用NORTAN中的DISKEDI很容易操作和实现。有了备份分区表信息,就不怕破坏分区表的病毒了;再加上我给你的程序,即使有人真锁住了你的硬盘,你也可以轻而易 举解开了。
如何做硬盘锁
1、首先将移动硬盘或者U盘插入电脑的USB接口。然后打开计算机的资源管理器,即打开我的电脑。在移动硬盘上点击鼠标右键,选择启用bitlocker。
2、此时系统会自动调用bitlocker功能。要选择一种加密的方式,一般情况用到最多的是第一种加密方式,即密码加密方式。点选这个复选框,然后在下面的两个输入框中输入再次一样的所设定的密码,然后点击下一步。
3、在此步骤中要选择保存密码的方式,这里提供了两种方式,一种是保存到文件,另一种是将密码打印出来,然后保存,一般采用第一种方式,即将密码保存到文件。
4、点击之后,会出现一个保存密码的页面。将你的密码保存到一个安全的位置,点击保存后进入下一步骤。
5、接下来会有一个加密确认页,选择启动加密按钮,开始磁盘的加密。此时会跳出一个驱动器加密的进度显示页,在此框中显示了加密的详细信息,包括进度等信息。此时要做的就是耐心等待。直到加密完成。
如何解密硬盘密码
操作步骤如下:1、在电脑的右下角点击开始,然后可以看到控制面板并且点击控制面板。
2、在电脑的控制面板中找到BitLockeer驱动器加密并且点击BitLocker驱动器加密。
3、这时,可以看到当前的E盘处于启用BitLocke状态,接着点击其右侧的关闭BitLocker。
4、进入到关闭BitLocke的页面以后,这时候选择解密驱动器。
5、点击解密驱动器以后,系统会自动对驱动器进行解密,解密过程中你会发现E盘全是红条,这时候只需要等待系统完成解密就可以了。
扩展资料:
硬盘锁的一些代码:
安全密码设置SSP:(F1H)
安全解锁SU:(F2H)
密码主动删除SEP:(F3H)
单元删除SEU:(F4H)
冻结锁定SFL:(F5H)
取消密码SDP:(F6H)
安全模式仅限于IDE硬盘,SCSI硬盘不支持这些操作码。
密码有用户密码和主控密码,可以同时设置也可以单独设置。一般建议同时设置且不要相同。
主控密码可以由制造商或者销售商或者管理员等通过SSP(F1H)命令设置,设置主控密码不需要进入锁定状态。
用户密码由使用用户自己设置,设置了用户密码后,在硬盘下次加电后会自动进入锁定模式。
2024-11-23 03:09
2024-11-23 02:13
2024-11-23 02:13
2024-11-23 02:08
2024-11-23 02:04
2024-11-23 01:51
2024-11-23 01:18
2024-11-23 00:58