DEBUG命令详解(第一讲)Debug原意是杀虫子。这里是机器调试工具。其实,Debug的由来,还有一则趣闻,在早期美国的一计算机房中,科学家正在紧张的工作。同时,许多台大型的计算机也在不停的运行着。大概是由于,机器过热,引来许多小虫子,以至于,计算机无法正常运行。科学家们,只好停下来,捉虫子...虫子捉完了,计算机运行也正常了,后来,这个名词就沿用至今了....虽然,现在好的软件越来越多了,但是有些,我们只需动手,用Debug就可解决,且快而好!接下来,我们就一起学习Debug在各方面的运用吧!(在杀毒、加解密、系统...)下面我和大家一起学习一些,Debug的用法,虽然,现在好的软件越来越多了,但是有些,我们只需动手,用Debug就可解决,且快而好!Debug常用命令集名称解释格式a(Assemble)逐行汇编a[address]c(Compare)比较两内存块crangeaddressd(Dump)内存16进制显示d[address]或d[range]e(Enter)修改内存字节eaddress[list]f(fin)预置一段内存frangelistg(Go)执行程序g[=address][address...]h(Hexavithmetic)制算术运算hvaluevaluei(Input)从指定端口地址输入ipataddressl(Load)读盘l[address[driverseetorm(Move)内存块传送mrangeaddressn(Name)置文件名nfilespec[filespec...]o(Output)从指定端口地址输出oportadressbyteq(Quit)结束qr(Register)显示和修改寄存器r[registername]s(Search)查找字节串srangelistt(Trace)跟踪执行t[=address][value]u(Unassemble)反汇编u[address]或rangew(Write)存盘w[address[driversectorsecnum?联机帮助?DEBUG命令详解(第二讲)上接:DEBUG命令详解(第一讲)debug小汇编a命令debug小汇编a命令是一个很有用的功能,许多的小程序都要他来做。编一些小程序比汇编要来得方便,快洁。在Debug中,中断是非常有用的,首先,让我们先了解一下中断。所谓中断,其实,就是,当你做某事时,有人过来找你有其他事,你先放下手中的事(计算机中,称为保护现场),再去与叫你的那个人办事去,等完了,你又回,接着做刚才的事。这是个很通俗的讲法。计算机在运行时,也会出现这种情况,我们叫之中断。下面是他的一些常用中断向量的入口值详解:(记住哦,很用的...呵呵)IBMPC中断int10ooH屏幕方式设置入口:AH=0,AL=显示方式代码(0--6)0:40*25黑白1:40*25彩色2:80*25黑白3:80*25彩色文本4:320*200彩色5:320*200黑白6:640*200黑白图形模式7:80*25单色字符(单色显示器)0BH色彩设置入口:AH=0B,BL=0设背景色,BH=0--15BL=1设调色码,BH=0--10CH写图形点入口:AH=0C,CX:DX=列号:行号,AL=颜色ODH读图形点入口:AH=0D,CX:DX=列号:行号返回:AL=颜色0EH在当前页、当前光标处写字符入口:AH=0E,AL=字符的ASCII码,BL=前景色OFH显示器状态入口:AH=0F返回:AL=当前显示器方式,AH=屏幕列数,BH=当前页号01H光标设置入口:AH=1,CH=光标起始行号(00--0C),CL=光标结束行号(00--0C)注:CH>CL02H光标定位入口:AH=2,BH=页号,DH:DL=起始行:列03H读光标位置入口:AH=3,BH=页号。返回:DH:DL=起始行:列06H窗口上卷入品:AH=6,AL=窗口上卷行数,CH:CL-DH:DL窗口坐标注:AL=0卷动整个窗口07H窗口下卷入口:AH=7,AL=窗口下卷行数,CH:CL-DH:DL窗口坐标08H读当前光标处字符和属性入口:AH=8,BH=页号。返回:AH:AL=字符的颜色:字符的ASCII码注:颜色代码见下对照表09H:在当前光标处写字符和属性注:光标不下移入口:AH=9,BH=页号,BL:AL=字符的颜色:字符的ASCII码,CX=重复次数12345678BLRGBIRGB闪烁字符底色加亮字符颜色中断向量号表中断号解释中断号解释0除数为0错19引导装入程序1音步中断1A日时调用2不可屏蔽中断NMI1B键盘阻断时得到控制权3断电中断(CCH)1C时钟中断时得到控制权4溢出中断1D指向CRT初始参数表5屏幕打印中断1E指向盒带参数表6-7保留1F1KB图形模式8计时器中断(18.2秒)20结束DOS程序9键盘中断21DOS功能调用A-D保留22结束地址(建义用EXEC)E软盘机中断23DOSCrtl-Break退出地址F保留24DOS致命错向量10屏幕I/O调用25DOS绝对磁盘读11设备检查调用26DOS绝对磁盘写12存储器检查调用27结束程序并驻留(建义用31h)13软盘机I/O调用28-3FDOS保留14RS-233I/O调用40-7F未用15盒带机I/O调用80-85BASIC保留16键盘I/O调用86-F0BASIC解释程序用17打印机I/O调用F1-FF未用18ROM-BASIC入口DEBUG命令详解(第三讲)上接:DEBUG命令详解(第一讲)DEBUG命令详解(第二讲)指令名详解call指令(过程调用)(控制指令-长转移)详解:段内直接调用段内间接调用(寄存器)段内间接调用(存储器)段间直接调用段间间接调用指令名jmp指令(无条件转移指令)(控制指令-长转移)详解:段内直接跳转短段内直接跳转段内间接跳转(寄存器)段内间接跳转(存储器)段间直接跳转段间间接跳转指令名ret指令(过程返回)(控制指令-长转移)详解:段内返回段内返回立即数加于sp段间返回段间返回立即数加于spna/jnbe指令(控制指令-短转移)不小于或不等于时转移jae/jnb指令(控制指令-短转移)大于或等于时转移jb/jnae指令(控制指令-短转移)小于转移jbe/jna指令(控制指令-短转移)小于或等于转移jg/jnle指令(控制指令-短转移)大于转移jge/jnl指令(控制指令-短转移)大于或等于转移jl/jnge指令(控制指令-短转移)小于转移jle/jng指令(控制指令-短转移)小于或等于转移je/jz指令(控制指令-短转移)等于转移jne/jnz指令(控制指令-短转移)不等于转移jc指令(控制指令-短转移)有进位时转移jnc指令(控制指令-短转移)列进位时转移jno指令(控制指令-短转移)不溢出时转移jnp/jpo指令(控制指令-短转移)奇偶性为奇数时转移jns指令(控制指令-短转移)符号位为0转移jo指令(控制指令-短转移)溢出转移jp/jpe指令(控制指令-短转移)奇偶性为偶数时转移js指令(控制指令-短转移)符号位为1时转移loop指令(循环控制指令-短转移)cx不为0时循环loope/loopz指令(循环控制指令-短转移)cx不为0且标志z=1时循环loopne/loopnz指令(循环控制指令-短转移)cx不为0且标志z=0时循环jcxz指令(循环控制指令-短转移)cx为0时转移★int指令(中断指令)中断指令(后详解)into指令(中断指令)溢出中断iret指令(中断指令)中断返回指令名shl指令(逻辑左移)sal指令(算术左移)shr指令(逻辑右移)sar指令(算术右移)寄存器,1rol指令(循环左移)寄存器,clror指令(循环右移)存储器,1rcl指令(通过进位的循环左移)存储器,clrcr指令(通过进位的循环右移)(逻辑运算)not指令(取反运算)寄存器求反(逻辑运算)存储器求反and指令(与运算)(逻辑运算)寄存器and寄存器寄存器寄存器and存储器寄存器存储器and寄存器存储器立即数and存储器存储器立即数and累加器累加器or指令(或运算)(逻辑运算)寄存器or寄存器寄存器寄存器or存储器寄存器存储器or寄存器存储器立即数or存储器存储器立即数or累加器累加器test指令(测试)(逻辑运算)寄存器test寄存器寄存器test存储器寄存器test立即数存储器test立即数累加器test立即数movs指令(串传送)(字符串操作指令)单个传送重复传送cmps指令(串比较)(字符串操作指令)单个比较重复比较scas指令(串扫描)(字符串操作指令)单个搜索重复搜索lods指令(装入串)(字符串操作指令)单个装载重复装载stos指令(保存串)(字符串操作指令)单个存储重复存储mov指令(传送字或字节)(数据传送命令)寄存器与寄存器间传送存储器与寄存器间传送立即数传送给存储器立即数传送给寄存器存储器传送给累加器累加器传送存储器寄存器传送给段寄存器存储器传送给段寄存器段寄存器传送给寄存器段寄存器传送给存储存器pop指令(把字弹出堆栈)(数据传送命令)push指令(把字压入堆栈)存储器寄存器段寄器xchg指令(交换字或字节)(数据传送命令)寄存器与寄存器交换存储器与寄存器交换寄存器与累加器交换in指令(端口输入)(数据传送命令)直接输入间接输入out指令(端口输出)(数据传送指令)直接输出间接输出add指令(加法)(算术指令)adc指令(带进位加法)寄存器+寄存器寄存器寄存器+存储器寄存器存储器+寄存器存储器立即数+存储器存储器立即数+累加器累加器inc指令(加1)(算术指令)存储器增量寄存器增量sub指令(减法)(算术指令)sbb指令(带借位减法)寄存器-寄存器寄存器寄存器-存储器寄存器存储器-寄存器存储器立即数-存储器存储器立即数-累加器累加器dec指令(减1)(算术指令)存储器减量寄存器减量nec指令(求反,以0减之)寄存器求补存储器求补cmp指令(比较)(算术指令)寄存器与寄存器比较寄存器与存储器比较寄存器与立即数比较存储器与立即数比较累加器与立即数比较mul指令(无符号乘法)(算术指令)imul指令(整数乘法)与8位寄存器相乘与16位寄存器相乘与8位存储单元相乘与16位存储单元相乘div指令(无符号除法)(算术指令)idiv指令(整数除法)被8位寄存器除被16位寄存器除被8位存储单元除被16位存储单元除DEBUG命令详解(第四讲)上接:DEBUG命令详解(第一讲)DEBUG命令详解(第二讲)DEBUG命令详解(第三讲)Debug实战1.查看主板的生产日期,版本Dffff:05Dfe00:0e2.模拟Rest键功能A:100jmpffff:0000:105g3.快速格式化软盘L10000*'插入一张己格式化软盘W10000*'放入一张欲格式化软盘注:*分别为:720Ke|1.2Mid|1.44M214.硬盘格式化两种方法(1)G=c800:05(2)A100movax,0703movcx,0001movdx,0080int13int3g1005.加速键盘Amovax,0305movbx,0000int16int20rcx10nfast.comwq6.关闭显示器(恢复时,按任意键)Amovax,1201movbl,36int10movah,0int16movax,1200int10rcx10ncrt-of.comwq7.硬盘DOS引导记录的修复在软驱中放入一张己格式化软盘debug-l100201-w1000501把软盘放入故障机软驱中debug-l1000501-w100201-q8.清coms中setup口令debug-amovbx,0038movcx,0000movax,bxout70,alinccxcmpcx,0006jnz0106int20-rcx:20-nclearpassword.com-w-q注:以上适合super与dtk机,对于ast机,因为他的口令放在coms的4ch-51h地址处,只要将:movbx,0038改为:movbx