ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:27.45KB ,
资源ID:3669833      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-3669833.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(给硬盘加逻辑锁的方法及解法Word下载.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

给硬盘加逻辑锁的方法及解法Word下载.docx

1、硬盘分区表位于硬盘的 0 磁道 0 柱面第1扇区(即0区)(注意:该扇区为隐含扇区,0道0面的全部扇区均为隐含扇区,普通的访问命令无法直接访问,同时该磁道的其他62个扇区也是隐含的,因此有些多系统引导程序就把自己的程序代码放在其他隐含扇区,有些引导区也把自己的代码放在其他隐含扇区。)。在该扇区512字节中,硬盘的主引导记录区MBR (Main Boot Record)只占用了前 446 个字节(偏移 000H-& 偏移 1BDH ),另外的 64个字节(偏移 1BEH& 偏移 1FDH )是硬盘分区表DPT&Disk Partition Table & , 最后两个字节 55 AA (

2、偏移 1FEH偏移 1FFH )是分区结束标志。 主引导记录中包含了硬盘的一系列参数和一段引导程序。其中的硬盘引导程序的主要作用是检查分区表是否正确并且在系统完成自检以后引导具有活动标志(80H)的分区上的,并将控制权交给活动盘上的操作系统的启动程序。 MBR是由分区(如 Fdisk,SmartFDisk,DM,PQmagic等)所产生的,它不依赖哪一种,而且硬盘引导程序也是可以改变的,从而实现多系统共存。主引导区的引导程序也可以全部为0,只是此时的硬盘不能引导起动。不论硬盘所装的什么样的操作系统,其MBR区的分区表的结构是一样的,引导程序在操作系统下基本一样,MS6.22和MSDOS7.0不

3、一样,其内容有所改变,但工作原理是一样的。如果你的电脑C盘安装的是NT操作系统时,其MBR区的引导程序就会和WIN98的不同。 每个硬盘都只能有一个主引导区,扩展分区表可以有多个。 硬盘的分区表偏移长度所表达的意义 偏移量 内容说明 大小 分区状态(00h=非活动Inactive, 80h=活动Active& 分区开始的磁头数 分区开始的柱面和扇区数 分区类型 分区结束的磁头数 分区结束的柱面和扇区数 第一个分区和MBR区之间的扇区总数,即隐含扇区总数。 分区中的扇区总数 偏移量0103H字节表示的柱面数和扇区数的计算方法 Cylinder Bits 7 to 0Cylinder Bits 9

4、+8Sector Bits 5 to 0 常用分区类型如下所示 数值 未知类型或不用 12BIT的FAT格式 16BIT_FAT表,空间小于32M 扩展MS_DOS分区 16BIT空间大于32MB 使用32BIT_FAT表,磁盘空间最大2GB 使用32BIT_FAT表,采用LBA模式,调用INT13扩展中断 使用16BIT_FAT表,调用INT13扩展中断 扩展MS_DOS分区,采用LBA模式,调用INT13扩展中断 例:下面是硬盘的MBR扇区内容: 上表内容左侧为偏称地址,中间为扇区内容16进制表示,右侧为ASCII表示,下同 分析硬盘分区表的内容定义: 其中从地址地03BE处的80开始到地

5、址03FD处结尾,其间就是所谓的硬盘分区表,共64个字节,每个分区占16个字节。也就是说不管硬盘有多大,最多也只能有四个主分区(扩展分区也是一个主分区)。 我们通常在WIN98下使用FDISK分区分区时,只分了一个活动分区和一个扩展分区。 从上面的分区表的内容我们可以看出,这个硬盘一共有3个主分区,两个0B分区(其中一个是隐含的,即在WIN98和其他中是不可见的)和一个0F扩展分区。 分区表中的“80 01 01 00 0B FE 7F E6 3F 00-00 00 E8 60 77 00”这一段内容就表示第一个主分区参数。 其中: 偏移地址BEH:80表示当前分区为活动状态(如果该块硬盘不只

6、有一个主分区,那么该位置的80H也可能是00H) 偏移地址BFC1H:0100表示起始的磁头1柱面1,扇区数0 偏移地址C2H:0B 表示该分区是FAT32格式 偏移地址C3HC5H:FE7FE6表示结束的磁头254D柱面486D扇区数63D 偏移地址C6HC9H:3F0000表示该硬盘有0000003FH(63D)个隐含扇区(也就是硬盘主引导区所在的0道0面的全部扇区) 偏移地址CAHCDH:E8607700表示该分区的全部扇区数(7760E8H7823592D) 注意: 1)分区表中的内容全部是十六进制,并且高位在前,低位在后。 2)偏移地址C2H表示的分区类型常用的,04,05,06,0

7、B,0C,0F,07等,如果把其前面的0改为1即,14,15,16,1B,1C,1F,17就表示该分区为隐含分区。 2. 硬盘逻辑锁加锁的原理 一个完整的硬盘锁程序,就是人为的改写0柱面0磁头1扇区的引导程序,并将分区表破坏,并故意制造一个循环分区表,而将真正的硬盘分区表参数和引导程序放在其它隐藏扇区并保护起来。在从自身启动时校验口令是否正确,如果口令不正确则无法启动电脑;如果口令正确,则把硬盘分区的内容改为正常值读入内存,这时系统就可以顺利启动。对于加锁的硬盘,即使我们把它放到别的机子也是不能启动的。没有密码您无法读取硬盘中的信息和数据,这对于保护硬盘中的数据是一种非常好的办法。但是如果想更

8、安全,就必须把硬盘分区表中的内容进行加密存储,那时即时您使用这里介绍的方法启动电脑了,也无法正确读取硬盘分区表中的内容。要想读取就必须了解程序的加密原理,然后解密。 三、硬盘逻辑锁加锁的方法 1)如果“55AA”的内容丢失,计算机不能从硬盘启动,系统提示:“DISK BOOT FAILURE, INSERT SYSTEM DISK AND PRESS ENTER.”,但是我们即使从软盘启动,也没有硬盘,用FDISK/STATUS命令显示硬盘未使用。 例如: 106C:03C0 01 00 0B FE 7F E6 3F 00-00 00 E8 60 77 00 00 00 .?.w.03D0 4

9、1 E7 1B FE BF 65 27 61-77 00 BF 21 1F 00 00 00 A.e'aw.!.03E0 81 66 0F FE FF FF E6 82-96 00 15 1D CC 01 00 00 .f.03F0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 .U. 还有,如果硬盘分区表中的活动标志都为“00H”时,这时硬盘也是不能启动的,但是由其他盘启动后,可以正常读取硬盘文件。 2)如果将硬盘分区参数全部变为0,这时由于没有分区参数存在,从硬盘是没法启动系统,这时从软盘启动后也无法认硬盘,这时系统认为硬盘是新的。

10、当你敲入盘符C:并回车,将出现提示“Invalid driver specification”。不过,我们还能够启动我们的计算机。03D0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 A.e&03F0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 55 AA .U. 3)如果将硬盘分区表参数改成一个循环链,即将D分区起始柱面,扇区数,磁道数指向C分区开始的起始柱面,磁道数,扇区数。当计算机启动时,主引导程序分析硬盘分区表时就进入死循环状态,计算机无休止的读取分区信息。这时无论我们是从硬盘启动还是从软盘启动

11、,到检测硬盘那一步就死机。具体表现为当出现“Update DMI data”后,计算机只有光标闪烁,没有其他任何反应。但是这种做法如果想恢复硬盘数据时也比较麻烦,在操作前必须对硬盘的主引导区数备份。03C0 01 00 0B FE 7F E6 3F 00-00 00 E8 60 77 00 00 01 .?03D0 01 00 1B FE BF 65 27 61-77 00 BF 21 1F 00 00 00 A.e& 这种方法只是部分硬盘能够被锁住。 4)通常的硬盘逻辑锁是将硬盘0柱面0磁头1扇区的1BF处改为01H改为00H,这就是把第一个主分区C盘的起始磁头数改为00,表示C盘从0面0道

12、0区开始,这时计算机在启动时便进入死循环状态。这种加锁硬盘的好处时,可以方便的改回正常状态。 有的加锁程序如恢复精灵和硬盘锁等程序不但把1BF处的01H改为00H,还同时把1C2处的值改为05H(该处的值一般为0BH或0CH)。03C0 01 00 05 FE 7F E6 3F 00-00 00 E8 60 77 00 00 00 .? 这种方法只要一改过存锁后重启计算机后肯定锁上,大多数逻辑锁都采用这种方法,恢复也很简单,只要把00H改为01H,再把05H改为0BH或0CH就可以了。 5)如果某个主分区的06-09表示该分区之前的扇区总数不等于前面分区的扇区总数加上隐含扇区总数,这时硬盘从自

13、身可以启动,但不能从软驱,启动,也不能挂在别的硬盘启动。 也就是说:地址2D6H2D9H之间的“3F”加上地址2DAH2DDH之间的“E800”应该等于3D6H3D9H之间的“276100”,即3F7760E8=776127。注意:在数据格式中,高位数据在后,低位数据在前。因此我们可以人为的通过磁盘编辑将“2700”改为其他值一,使硬盘分区表出现错误而造成硬盘被锁。 这种产生的原因是在计算机工作过程中,因为外界的强脉冲干扰或意外的掉电可能会造成硬盘分区表中的数据改变。这种锁法只对部分硬盘有效,有的硬盘改过后不影响正常使用,可以照常读写。 6)我们也可以把磁盘空间大于2G的FAT32格式的硬盘设

14、置为FAT16的04,05,06格式,人为的造成硬盘错误。 7)我们也可以把硬盘的终止扇区号,柱面号,磁头号改为其他分区的终止扇区号,柱面号,磁头号。 8)将扩展分区表中的某个分区的首尾指针重新指向其前面的分区的首尾指针。 四、造成硬盘被锁的原因 1)使用硬盘加密后,忘记进入密码。 2)接收了具有恶意破坏功能的电子。 3)感染。 4)使用硬盘分区工具软件时意外掉电或关机或死机。 五、解锁的原理 我们再分析一下WIN98和MS 启动软盘中的系统文件。在WIN98中只有一个IO.SYS,而在MS DOS中有IO.SYS和MSDOS.SYS。IO.SYS文件是输入输出管理文件(Input and O

15、utput),它包含LOADER、IO1、IO2、IO3四个模块,其中IO1中包含有一个很关键的程序SysInt_I,它在启动中很固执,非要去读分区表,而且不把分区表读完誓不罢休。如果碰上分区表是循环的,它就只有死机了,这是MS DOS的脆弱性和不完备性。DOS为了获得硬盘使用权必需读分区表参数,而且DOS还约定器号不能超过26,这是系统的者没有考虑到此等循环分区表的严重后果。注:如果我们把加锁的硬盘挂在 2000系统下就可以正常启动,并可以通过的磁盘工具将有问题的分区表进行修复。 如果在计算机从软盘启动过程中,我们人为的改动系统文件,不允许系统在启动过程中读取硬盘分区表中的内容也就是跳过正常

16、的硬盘检测功能,这时我们可以启动计算机了。 六、制作特殊的启动盘 通过以上的分析你就明白了硬盘逻辑锁是怎么一回事了。我们只要制作一张特殊的启动软盘(当然也可以做成启动),就可以解决。 1. 用DEBUG制作特殊的启动软盘 1).下面是写入软盘0磁道0头1扇区的源程序,程序用debug输入。 0100 CLI 0101 XOR AX,AX 0103 MOV DS,AX 0105 MOV ES,AX 0107 MOV SS,AX 0109 MOV AX,7C00 010C MOV SP,AX 010E STI 010F MOV SI,AX 0111 MOV DI,7E00 0114 CLD 011

17、5 MOV CX,0200 0118 REPNZ 0119 MOVSB 011A JMP 0000:7E1F 011F MOV CX,0003 0122 PUSH CX 0123 MOV AX,0201;读启动软盘的引导扇区 0126 MOV BX,7C00 0129 MOV CX,4F01 012C MOV DX,0100 012F INT 13 0131 POP CX 0132 DEC CX 0133 JNZ 0122 0135 MOV AX,004C;抢先获取INT 13H的位置 0138 MOV 7E88,AX 013B MOV AX,004E 013E MOV 7E8A,AX 014

18、1 MOV AX,0413 0144 DEC AX 0145 MOV 0413,AX 0148 MOV CL,06 014A SHL AX,CL 014C MOV ES,AX 014E XOR AX,AX 0150 MOV DS,AX 0152 MOV SI,7E6D;复制改写的INT 13H程序到高端内存 0155 MOV DI,0000 0158 MOV CX,0030 015B REPNZ 015C MOVSB 015D MOV AX,0000;将新INT 13H位置写入中断向量表 0160 MOV 004C,AX 0163 MOV AX,ES 0165 MOV 004E,AX 0168

19、 JMP 0000:7C00 016D PUSHF;新INT 13H程序 016E CMP DX,0080;是否是硬盘 0172 JNZ 0176;不是硬盘则继续 0174 POPF 0175 IRET;是硬盘则直接返回 0176 CMP DX,+00;是否读软盘BOOT区? 0179 JNZ 0186 017B CMP CX,+01 017E JNZ 0186 0180 MOV CX,4F01;是则读79磁道1磁头1扇区 0183 MOV DX,0100 0186 POPF 0187 JMP 0000:0000;此处跳转去执行旧INT 13,0188;旧INT 13H的位置由前面程序获得后写

20、入。 2& 程序的装载 在进行下面工作前,先用格式化一张启动的系统盘,并保证没有坏扇区,最好进行启动测试,确保其可以启动机子。由于现在机子上大多只有3寸软驱,因此选择1.44M的3.5寸软盘。然后用debug 将程序调入内存偏移地址为100H,同时在400H处写入一段装载程序。即: 0400 MOV CX,0003 0403 PUSH CX 0404 MOV AX,0201;将A盘引导程序读入内存1000H处 0407 MOV BX,1000;为确保成功,首次采用重复读3次 040A MOV CX,0001 040D MOV DX,0000 0410 INT 13 0412 POP CX 04

21、13 DEC CX 0414 JNZ 0403 0416 MOV AX,0301;将已读入内存的软盘引导程序写入软盘 0419 MOV BX,1000;最后一个磁道的首扇区 041C MOV CX,4F01 041F MOV DX,0100 0422 INT 13 0424 MOV AX,0301;将程序写入软盘0磁道0磁头1扇区 0427 MOV BX,0100 042A MOV CX,0001 042D MOV DX,0000 0430 INT 13 0432 INT 3 为保证万无一失,最好将软盘这两个扇区的内容重新读出来看一看,以保证写成功了。做好这一切,保险的还是进行一次测试,即用该

22、软盘启动一次机子,看能否成功,若成功启动,你就可以用循环分区表法锁住硬盘,看从正常DOS下能否启动,然后再用此软盘启动机子试试,看看功效如何? 从该软盘启动后,不认硬盘,并且在高端内存驻留了新INT 13H程序,该段程序实际上是中从16D到187部分。由于有此段程序存在,在debug下也无法读硬盘,也就没法恢复硬盘分区表,因此机子启动后首先应修改这段程序。现在的机子基本内存通常都为640K,这样这段程序就位于内存中9FC0:0000处,在debug下,用U9FC0:0显示这段程序,可以看到位于9FC0:001A处是一条跳转指令,该跳转指令即转去执行最原始的INT 13H。由于BIOS版本不一样

23、,跳转指令指向的位置可能不一样,如笔者机子上是一条JMP F000:A5D4语句。这时在在debug下编写这样一语句:a9FC0:0 JMP F000:A5D4。这样,对硬盘的禁写与禁读都不再起作用了,在debug下用INT 13H的2号子功能可以读出硬盘分区表,修改恢复后再用3号子功能将数据写回分区表。退出debug,重新用正常DOS启动计算机,就可以了。 附带提一下,在正常DOS下,该软盘由于没有BOOT区,也就没有参数表,从而不能使用,用DIR A:命令会出现General failure reading drive A提示。不要理睬它,这并不影响它作特殊启动盘。 还有,在网上有专门解江民逻辑炸弹的程序,那个解锁软盘的解锁程序就在软盘的引导区里。不过这个软盘还可以用来存储数据,只是不能用来启动系统。 只要我们启动了计算机,就可以利用以下的方法解开硬盘的逻辑锁了。 2.

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2