<b>KV300技术解析(有关硬盘锁)</b>[VC/C++编程]
本文“<b>KV300技术解析(有关硬盘锁)</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
注:此程序有一定的风险性.老妖也没有试过.但愿大家考虑清楚了再行事.
要不是亲身试一下,你一定不会相信,运行下面的程序,你的机械将不能从软盘启动,更不能从硬盘启动.而这个程序仅仅改正了你的硬盘的扩大DOS分区的首躲藏扇区.
code segment
assume cs:code,ds:code
org 100h
begin:
xor ax,ax
mov dl,80h
int 13h ;复位硬盘
mov ax,201h
mov bx,200h
mov cx,1
mov dx,80h
int 13h ;读主指导扇区到200H
mov cx,ds:[3d0h]
mov [3ceh],0
mov bx,210h
mov ax,301h
int 13h ;写扩大分区首躲藏扇区
int 19h ;快启动
code ends
end begin
程序很短,你可以在DEBUG中输入并运行.在编译成.com 之后,运行之前请保存好硬盘的扩大DOS分区的首躲藏扇区的内容,以备将来恢复时用.
笔者是在编制一个硬盘加锁程序时,因计算有误而无意发现这一点的.仅仅因为改正硬盘一个躲藏扇区,造成机械从软硬盘都不能启动,从未见资料说起.作者当时很惊奇.
为了办理问题,笔者按复位键,进入CMOS设置,将硬盘设置为未安装,则可以从软盘启动,但是,利用INT13h仍不能读写硬盘,因此无法将被破坏的扇区答复.
笔者预计是指导历程中,读取硬盘分区表时形成循环的来由.来由有两点:
1、因为仅仅改正硬盘一个扇区,造成了如此现象,而该扇区仅记录了硬盘分区表的一些信息;
2、启动历程中,不管从软盘启动还是从硬盘启动,终究的现象都是硬盘灯第亮.因此,换用不支持硬盘分区的低版本DOS系统盘也答应以启动,利用2.0版的系统盘,公然可以在CMOS设置为硬盘正常安装的情形下启动机器,启动后虽仍不能进入硬盘,但可以用INT13h读写硬盘.在DEBUG顶用正常的内容覆盖硬盘的扩大DOS分区的首躲藏扇,重新启动机器,成功.
以上是“<b>KV300技术解析(有关硬盘锁)</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |