当前位置:首页 » 操作系统 » 逻辑硬盘锁源码

逻辑硬盘锁源码

发布时间: 2023-05-30 04:51:08

❶ 硬盘逻辑锁的原理

一、计算机启动过程分析当计算机自检完成后,并更新过 ESCD (Extended System Configuration Data,扩展系统配置数据)时,如果你的计算机设置是从硬盘启动,这时计算机将首先硬盘0柱面0磁头1扇区(主引导区MBR)中的512个字节读入内存0000:7C00处并跳到0000:7C00处执行;如果选择从软盘启动,则计算机首先将A盘0磁道0磁头1扇区的内容读入内存神友0000:7C00处并跳到0000:7C00处执行。在读取过程中,计算机并不检查该扇区的内容是什么。接着执行读入的内容(硬盘主引导区中的前466个字节,软盘没有分区表,软盘读入的是其引导区的内容,类似于C盘,D盘第一个扇区的内容),首先开始检测该扇区的最后两个字李是不是“55AA”标志,如果“55AA”不存在则打印“Invalid partition table(无效的分区表)”;如果有“55AA”并进一步检测有无硬盘分区表;如有并再进一步分析硬盘分区表中的内容是否正确;如果硬盘分区表正确可用,便接着读取活动分区的第一个扇区的内容即引导区(DBR区)的内容,并把控制权移交。但硬盘分区表的内容驻留内存,供计算机调用。二、硬盘分区表和逻辑锁的原理分析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" (偏移 1FEH-偏移 1FFH )是分区结束标志。主引导记录中包含了硬盘的一系列参数和一段引导程序。其中激瞎销的硬盘引导程序的主要作用是检查分区表是否正确并且在系统硬件完成自检以后引导具有活动标志(80H)的分区上的操作系统,并将控制权交给活动盘上的操作系统的启动程序。

❷ 如何写硬盘逻辑锁

计算机在引导DOS系统时将会搜索所有逻辑盘的顺序,当DOS被引导时,首先要去找主引 导扇区的分区表信息,位于硬盘的零头零柱面的第一个扇区的OBEH地址开始的地方,当 分区信息开始的地方为80H时表示是主引导分区,其他的为扩展分区,主引导分区被定义 为逻辑盘C盘,然后查找扩展分区的逻辑盘,被定义为D盘,以此类推找到E,F,G..... 逻辑锁就是在此下手,修改了正常的主引导分区记录将扩展分区的第一个逻辑盘指向 自己,DOS在启动时查找到第一个逻辑盘后,查找下个逻辑盘总是找到是自己,这样一来 就形成了死循环,这就是使用软驱,光驱,双硬盘都不能正常启动的原因。实际上这逻辑锁只是利用了DOS在启动时的一个小小缺陷,便令不少高手都束手无策。知道了逻辑 锁的上锁原理,要解锁也就比较容易了。以前我看到有位朋友采用热拔插硬盘电源的方法来处理:就是在当系统启动时,先不给被锁的硬盘插上电源线,等待启动完成后再给硬盘热插上电源线,这时如果硬盘没有烧坏的话,系统就可以控制硬盘了。当然这是一种非常危险的方法,大家不要轻易尝试,下面介绍两种比较简单和安全的处理方法。

方法一:修改DOS启动文件
首先准备一张DOS6.22的系统盘,带上debug、pctools5.0、fdisk等工具。然后在一台正常的机器上,使用你熟悉的二进制编辑工具(debug、pctools5.0,或者windows下的ultraedit都行)修改软盘上的IO.SYS文件(修改前记住改该文件的属性为正常),具体是在这个文件里面搜索第一个55aa字符串,找到以后修改为任何其他数值即可。用这张修改过的系统软盘你就可以顺利地带着被锁的硬盘启动了。不过这时由于该硬盘正常的分区表已经被黑客程序给恶意修改了,你无法用FDISK来删除和修改分区,而且仍无法用正常的启动盘启动系统,这时你可以用DEBUG来手工恢复。使用DEBUG手工修复硬盘步骤如下:

a:\ >debug
-a
-xxxx:100 mov ax,0201 读一个扇区的内容
-xxxx:103 mov bx,500 设置一个缓存地址
-xxxx:106 mov cx,0001 设置第一个硬盘的硬盘指针
-xxxx:109 mov dx,0080 读零磁头
-xxxx:10c int 13 硬盘中断
-xxxx:10e int 20
-xxxx:0110 退出程序返回到指示符
-g 运行
-d500 查看运行后500地址的内容

这时候会发现地址6be开始的内容是硬盘分区的信息,发现此硬盘的扩展分区指向自己,这就使DOS或WINDOWS启动时查找硬盘逻辑盘进去死循环,在DEBUG指示符下用E命令修改内存数据 具体如下:

E6BE
xx.0 xx.0 xx.0...............
.............................
.......................55 AA
55 AA表示硬盘有效的标记,不要修改,xx0表示把以前的数据xx改成0

再用硬盘中断13把修改好的数据写入硬盘就可以了,具体如下:

A:\ >debug
a 100 表示修改100地址的汇编指令
-xxxx:100 mov ax,0301 写硬盘一个扇区
-xxxx: 这里直接按回车
-g 运行
-q 退出

然后运行 FDISK/MBR(重置硬盘引导扇区的引导程序),再重新启动电脑就行了。 怎么样?用这种方法处理够简单的吧?而且这种方法还有一个好处就是可以保住盘上的 数据!如果你不需要保数据的话,还有更加简单的处理方法:
方法二:巧设BIOS,用DM解锁大家知道DM软件是不依赖于主板BIOS的硬盘识别安装软件,(所以在不能识别大硬盘的老主板上也可用DM来安装使用大容量硬盘)。就算在BIOS中将硬盘设为NONE,散孙DM也可识别并处理硬盘。

首先你要找到和硬盘配套的DM软件(找JS要或去网上荡),然后把DM拷到冲纤链一张系统盘上。接上被锁硬盘,开机,按住DEL键,进CMOS设置,将所有IDE硬盘设为NONE(这是关键所在!),保存设置,重启动,这时系统即可 带锁启动。启动后运行DM,你会发现DM可以绕过BIOS,识别出硬盘,选中该硬盘,分区格式化,就OK了。这么简单?不过这种 方法的弱点是硬盘上的数据将全竖耐部丢失

❸ 巧解硬盘逻辑锁

巧解硬盘逻辑锁

硬盘逻辑锁想必不少网友们不会陌生吧,硬盘逻辑锁最初是江民公司的kv300

L版中带的一个保护程序,本意是对付那些企图破解KV300软件那些人的硬盘的。后来有好事者将它分离出来单独用上了。那时江民公司为了打击盗版,在KV新版升级程序植入了一个黑客程序,当检测到用户使用了盗版的KV以后就将硬盘的分区表锁住,被称为“主动逻辑锁”,使无数人受害,江民公司也因此被处罚,这都是很早以前的事了。

前几天我的一位朋友向我求助,说自己用逻辑锁把自己的硬盘锁住了......,我很是奇怪,难不成这哥们吃饱了撑的没事干?后来到了朋友家里才明白,原来这哥们在网上看到了有逻辑锁这个程序,非常感兴趣,就找了一个想要发给朋友恶作剧一含橘下,但是从网上下载了程序后,又不知道好不好用,所以就在自己的机子上试了一下。

没想到直接就把自己的.硬盘锁住了,光驱软驱全部不好使,DOS也进不去了;实在无奈所以就打电话向尺老散我求助了,我先是幸灾乐祸一通,后来又以一顿饭作为条件,答应帮助他解开逻辑锁。为了让大家能够了解如何解开逻辑锁,今天我将详细的方法写出来,也希望一会会对大家有所帮助。

硬盘锁的原理

说实话,虽然有关于逻辑锁的文章在网上到处皆是,我对于逻辑锁也早有耳闻,但是其实我也没有实际使用和操作过,对于如何解锁我脑子里也是一团浆糊,但是为了这一顿饭,我怎么也要试试呀,大不了在朋友面前丢点人!

为了弄清楚逻辑锁的工作原理和解决办法,我在网上查了不少资料,逻辑锁的工作原理基本上是计算机在引导DOS系统时将会搜索所有逻辑盘的顺序,当DOS被引导时,首先要去找主引

导扇区的分区表信息,位于硬盘的零头零柱面的第一个扇区的OBEH地址开始的地陵氏方。

当分区信息开始的地方为80H时表示是主引导分区,其他的为扩展分区,主引导分区被定义为逻辑盘C盘,然后查找扩展分区的逻辑盘,被定义为D盘。

以此类推找到E,F,G…..

"逻辑锁"就是在此下手,修改了正常的主引导分区记录将扩展分区的第一个逻辑盘指向自己,DOS在启动时查找到第一个逻辑盘后,查找下个逻辑盘总是找到是自己,这样一来

就形成了死循环,这就是使用软驱,光驱,双硬盘都不能正常启动的原因。 ;

❹ 我的电脑中了硬盘逻辑锁,谁知道解锁的方法啊,要确切实用的。

首先准备一张DOS启动盘,将Debug和Fdisk程序复制到上面。在其他电脑上,将软盘上的IO.SYS文件的只读属性取消,并使用二进制编辑工具(DOS环境的Debug和PCtools,Windws环境的Ultraedit)进行修改,搜索第一个55AA字符串,改为任意字符(如66BB)。接下来用修改后的软盘启致力电脑了。启动后,通过Debug程序手工修改被修改的分区表,如下:
A:\>debug
-a
-xxxx: 100 mov ax, 0201 (只读一个扇区的内容)
-xxxx: 103 mov bx, 500 (设置一个缓存地址)
-xxxx: 106 mov cx, 0001 (设置第一个硬盘的逻辑指针)
-xxxx: 109 mov dx, 0080 (读零磁头)
-xxxx: 10c int 13 (硬盘中断)
-xxxx: 10e int 20
-xxxx: 0110 (退出程序)
-g (运行)
-d 500 (查看地址为500的寄存器)

从地址6BE开始的内容是硬盘分区的信息,使用E命令修改内存数据:
E6BE
× ×. 0 × ×.0 × ×.0 … 55 AA

把数据××改成0,再用硬盘中断13把修改好的数据写入硬盘:
A>\debug
-a 100 (要修改的寄存器地址为100)
-xxxx: 100 mov ax, 0301 (写硬盘一个扇区)
-xxxx: (直接按回车)
-g (运行)
-q (退出)

最后,执行Fdisk/MBR命令,重写硬盘引导区的引导程序,重启电脑。
第三种厅高方法:制作一张“解锁”软盘。首先将故障硬盘卸下,使好旦用带有Debug程序的DOS启动盘启动系统,执行Debug命令,然后将启动盘取出,放入一张已格式化的空白软盘,在Debug环境中进行如下操扮袜尺作:
-A 0100
XXXX: 0100 XOR AX, AX
XXXX: 0102 PUSH AX
XXXX: 0103 POP DS
XXXX: 0104 PUSH AX
XXXX: 0105 POP ES
XXXX: 0106 MOV CX, 100
XXXX: 0109 MOV BX, 7C00
XXXX: 010C MOV WORD PTR [BX], 00
XXXX: 0110 INC BX
XXXX: 0111 INC BX
XXXX: 0112 LOOP 10C
XXXX: 0114 MOV AX, 0301
XXXX: 0117 MOV CX, 0001
XXXX: 011A MOV DX, 80
XXXX: 011D MOV BX 7C00
XXXX: 0120 INT 13
XXXX: 0122 JMP FFFF:0000
XXXX: 0127
-W 100 0 0 1
Q
接下来,并闭系统。将故障硬盘单独作为主盘安装好,使用制作刚制作的软盘启动系统,系统会自动修复,然后重启。将软盘取出,换上DOS启动盘,启动到DOS环境。此时,硬盘逻辑锁已经解除,但无法使用,要进行重新分区和格式化。如果要保存硬盘上的数据,可以使用KV300等工具进行分区扫描恢复操作。

❺ 硬盘逻辑锁的形成和解决办法

硬盘逻辑锁是江民杀毒软件打击反盗版的一种手段。
方法一:修改DOS启动文件

首先准备一张DOS6.22的系统盘,带上debug、pctools5.0、fdisk等工具。然后在一台正常的机器上,使用你熟悉的二进制编辑工具(debug、pctools5.0,或者windows下的ultraedit都行)修改软盘上的IO.SYS文件(修改前记住改该文件的属性为正常),具体是在这个文件里面搜索第一个“55aa”字符串,找到以后修改为任何其他数值即可。用这张修改过的系统软盘你就可以顺利地带着被锁的硬盘启动了。不过这时由于该硬盘正常的分区表已经被黑客程序给恶意修改了,你无法用FDISK来删除和修改分区,而且仍无法用正常的启动盘启动系统,这时你可以用DEBUG来手工恢复。使用DEBUG手工修复硬盘步骤如下:

a:\>debug
-a
-xxxx:100 mov ax,0201 读一个扇区的内容
-xxxx:103 mov bx,500 设置一个缓存地址
-xxxx:106 mov cx,0001 设置第一个硬盘的硬盘指针
-xxxx:109 mov dx,0080 读零谈御枣磁头
-xxxx:10c int 13 硬盘中断

-xxxx:10e int 20
-xxxx:0110 退出程序返回到指示符
-g 运行

-d500 查看运行后500地址的内容

这时候会发现地址6be开始的内容是硬盘分区的信息,发现此硬盘的扩展分区指向自己,这就使DOS或WINDOWS启动时查找硬盘逻辑盘进去死循环,在DEBUG指示符下用E命令修改内存数据 具体如下:
E6BE
xx.0 xx.0 xx.0...............

.............................
.......................55 AA
55 AA表示硬盘有效的标记,不要修改,xx0表示把以前的数据“xx”改成0

再用硬盘中断13把修改好的数据写入硬盘就可以了,具体如下:

A:\>debug
a 100 表示修改100地址的汇编指令
-xxxx:100 mov ax,0301 写硬盘一个扇区
-xxxx: 这里直接按回车
-g 运行
-q 退出
然后运行 FDISK/MBR(重置硬盘引导扇区的引导程序),再重新启动电脑就行了。

怎么样?用这种方法处理够简单的吧?而且这种方法还有一个好处就是可以保住盘上的数据!如果你不需要保数据的话,还有更加简单的处理方法:

方法二:设BIOS,用DM解
大家知道DM软件是不依赖于主板BIOS的硬盘识别安装软件拆宽,(所以在不能识别大硬盘的老主板上也可用DM来安装使用大容量硬盘)。就算在BIOS中将硬盘设为“NONE”,DM也可识别并处理硬盘。
首先你要找到和硬盘配含拆套的DM软件(找JS要或去网上荡),然后把DM拷到一张系统盘上。接上被锁硬盘,开机,按住DEL键,进CMOS设置,将所有IDE硬盘设为NONE(这是关键所在!),保存设置,重启动,这时系统即可 “带锁”启动。启动后运行DM,你会发现DM可以绕过BIOS,识别出硬盘,选中该硬盘,分区格式化,就OK了。这么简单?

这种方法的弱点是硬盘上的数据将全部丢失。不过,还是有一个方法可以补救的,那就是用一根

IDE-USB连接线把你在你在处理的硬盘连到另一台电脑上用GHOST备份过去后,就可以用GHOST EXPLORER来解决了。

❻ vb! 汇编 硬盘逻辑锁

这得看你对VB和汇编语言的掌握程度。
可以用VB实现硬盘逻辑锁,也可以用VB和汇编语言联合实现。

❼ 什么叫硬盘的逻辑锁,如何解开

硬盘逻辑锁总共有三种,本质都是对硬盘的分区表作了修改,以前只是一些黑客程序使用它,开始大范围对计算机造成危害是在臭名昭着的KV3000反盗版事件的时候,那时江民公司为了打击盗版。在KV3000新版升级程序植入了一个黑客程序,当检测到用户使用了盗版的KV3000以后就将硬盘的分区表锁住,被称为“主动逻辑锁”,其实就是硬盘逻辑锁的一种,当时却使无数无辜的人受害,江民公司也因此被定罪。这是旧事不谈,下面我们就来介绍一下它的三种情况和解决方法。 首先我们来了解一下硬盘的分区表。硬盘分搭毕区表位于磁盘的0磁头0柱面1扇区,这个扇区从01BEH开始的64个字节就是分区表。分区表共64字节,分为4栏,每栏16个字节描述一个分区。如果用FDISK程序分区,那最多只用两栏,第一栏描述主引导分区,第二栏描述扩展分区。分区表的结构与各字节的含义如下: 00H—标志活动字节。活动DOS分区为80H,其它为00H。 01H—本分区逻辑0扇区所在的磁头号。 02H—逻辑0扇区所在柱面中的扇区号。 03H—逻辑0扇区所在的柱面号。 04H—分区类型标志。 05H—本分区最后一个扇区的磁头号。 06H—最后一个扇区的扇区号。 07H—最后一个柱面的柱面号。 08H—硬盘上在本分区之前的扇区总数,用双字节表示。 0CH—本分区的扇区总数,从逻辑0扇区计数,不含隐藏扇区,用双字节表示。 分区表的最后两个字节是它的有效标志,改变后将无法从硬盘启动,这就是第一种简单的锁住硬盘的方法。不过比较容易解决,只要从软盘启动就一切正常,启动后用Debug或Diskedit等软件将硬盘分区表中的标志恢复就可以了。第二种方法是修改分区参数,如果将分区参数全部变为0,则启动后由于找不到分区参数无法从硬盘启动,用启动盘从软盘启动后也不认硬盘,不过机器毕竟能够启动,我们可以在启动后用软盘里的debug等工具修复被改动的分区表参数,重新启动后就没问题了。 我们重点要讲的就是第三种,也就是上文提到的“主动逻辑锁”,它是因为分区表参数被修改成了一个死循环。正常启动时DOS接管硬盘后查找分区表,主引导分区被定义为C盘,然后查找逻辑盘,定义为D盘,然后是E、F、G,而这个主动逻辑锁就是将第一个逻辑盘(一知升芹般是D盘)的下一个分区指向它本身,不断读取下一个,其实就是读它自己,结果陷入死循环。因为DOS启动必须包含基本输入输出文件io.sys(我们在windows下也可以看到,位于C盘根目录下)。而它是有些固执的,启动以后非要把硬盘分区表读完然后接管不可,所以无论我们用什么启动,它一查找逻辑盘就死循环,我们就看到了硬盘灯常亮系统挂起的情况了。 那么我们如何解开它呢?从根本上讲就是让io.sys不起作用或者在它起作用以前将分区表参数修改回来。 1、debug法。 用这种方法首先必须要能启动机器,我们可以在一台正常的电脑上修改启动软盘中的io.sys文件,查找到第一个“55aa”字符串,找到以后修改为任何其他数值,用这张启动软盘你就可以顺利地带着被锁的硬盘启动了。不过这时该硬盘的分区表已经不正常,所以我们无法用FDISK来删除和修改分区,而且仍然无法用正常的启动盘启动系统,这时可以用DEBUG来手工恢复。具体命令如下: a:>debug -a -????:100 mov ax,0201(读一扇区内容) -????:103 mov bx,500(设置一缓存地址) -????:106 mov cx,0001(设置第一硬盘的硬盘指针) -????:109 mov dx,0080(读零磁头) -????:10c int 13 (硬盘中断) -????:10e int 20 -????:0110 回车 (注:-????各硬盘不相同,跟后面的:1??都是自动显示的,我们要输入的只是其后的内容) -g -d500 (查看运行后缓存地址500的内容,这时候我们会发现地址6be开始的内容就是硬盘分区表信息,如果硬盘的扩展分区正是指向自己,那么DOS或WINDOWS启动时就会因查找逻辑分区而陷入死循环。)在DEBUG指示符下继续笑迅修改内存数据: E6BE ??.0 ??.0 ??.0…… …… ……55 AA 55 AA是硬盘有效的标志,不要修改,??.0表示把以前的数据“??”改成了0,再用硬盘中断13把修改好的数据写入硬盘就可以了: A:>debug a 100 (表示修改100地址的汇编指令) -????:100 mov ax,0301 (写硬盘一个扇区) -????: 回车 -g (运行) -q (退出) 退出后运行fdisk/mbr来重置硬盘引导程序,重新启动即可。 这种方法虽然麻烦一点,但是它能够恢复硬盘分区表,也就是说恢复以后硬盘中的数据也不会丢失。而以下方法虽然更加方便,但是要么硬盘中的数据难保,要么有一定危险性。 2、外挂软件法 这种方法原理都是绕过bios对硬盘的检测而直接用一些能够自己查找硬盘的软件来控制硬盘。 首先是DM,现在每一个硬盘厂商都有自己的DiskManager程序,而且都能放进一张软盘里,你可以下载一个使用,如果不清楚自己硬盘的牌子,也可以用IBM出的DM万用版,不过它对现在32G以上的大硬盘支持不好。我们先在bios里面将硬盘所在的IDE口设置为none,(如果你不知道哪个是,全部设为none也可以),然后用启动盘启动系统,启动完成后将软盘取出,放入装有DM软件的软盘,运行DM,它会检测到你的病硬盘的存在,然后将它重新分区就搞定了。DM具体用法比较简单,就不详细说了,不过对E文不太好的朋友可能有些困难,请教身边的高手吧。 我们还可以使用低格软件,也是每一种硬盘都有自己的低格软件,但也有通用的Lformat程序(只有30多k),前面的做法相同,还是在bios里面屏蔽掉硬盘,用启动盘启动,然后换软盘运行低格程序对硬盘进行低级格式化,由于分区表只在硬盘最前列部分,所以估摸着格过前面的分区表部分就可以停止了,然后重新启动在bios里面将硬盘设出来,就可以像一块新的硬盘一样对它进行分区等操作了。 3、热插拔 这是最危险的一种方法,很有可能将你的硬盘烧毁,所以请谨慎。具体做法很简单,首先将硬盘的电源线拔掉,然后软盘启动系统,启动完成后再将硬盘的电源线插上,这时候系统就能够控制硬盘了,可以对它进行分区,恢复分区表等操作。我有一个菜鸟朋友就是在热插拔硬盘3次以后搞定的。不过此种方法存在危险,强烈不推荐使用,如因此损坏,本人概不负责。 其实最好的情况是你有分区表备份,那恢复起来就比较容易了,而且数据也不会丢失。

热点内容
android状态栏高度 发布:2024-05-07 00:24:42 浏览:241
数据库主文件 发布:2024-05-07 00:14:41 浏览:607
木头创意解压 发布:2024-05-07 00:11:55 浏览:215
密码都能设置什么 发布:2024-05-07 00:02:30 浏览:741
兰州大学网络服务器ip地址 发布:2024-05-06 23:44:09 浏览:429
安卓手机为什么这么香 发布:2024-05-06 23:33:19 浏览:623
安卓微信深色模式是什么意思 发布:2024-05-06 23:14:41 浏览:686
脚本样本 发布:2024-05-06 23:03:41 浏览:630
sqlserver导出 发布:2024-05-06 23:02:16 浏览:808
phpredis操作 发布:2024-05-06 22:56:24 浏览:584