|
发表于 2003-5-10 21:57:42| 字数 3,245| - 中国–上海–上海–静安区 电信
|
显示全部楼层
|阅读模式
前几天又兄弟对debug很感兴趣,由于是学通信的,汇编学了一堆,所以挑几个有实用价值的贴出来
比如看看主板信息以防JS...了,看看LCD有没有坏点了,搞定寝室里别人机子的bios密码了,等等等等
首先如入一下门,debug都是从这些东东来的
1。 主要的命令及格式,这些命令是debug最基本的命令,如何灵活使用就看你自己的硬件知识了,不过我会举一些具体粒子的
A(Assemble): 汇编语句 A[address]
C(Compare): 比较内存 C range address
D(Dump): 显示内存 D[address]或D[range]
E(Enter): 改变内存 E address
F(Fill): 填充内存 F range list
G(Go): 执行程序 G[=address[address[address...]]
H(Hexarithmetic): 十六进制运算命令 H[address[drive|sector|sector]]
I(Input): 输入 I portaddress
L(Load): 装入内存 L[address[drive|sector|sector]]
M(Move): 传送内存 M range address
N(Name): 定义文件和参数 N[d:][path]filename[.ext]
O(Output): 输出字节 O portaddress byte
P(Proceed): 在下条指令前停止 P[=address][value]
Q(Quit): 结束DEBUG程序 Q
R(Hexarithmetic): 显示寄存器/标志位 R[registername]
S(Search): 捡索字符 S range list
T(Trace): 执行并显示(跟踪) T[=address][value]
U(Unassemble): 反汇编指令 U[address]或U[range]
W(Write): 把文件或数据写盘 W[address[drive|sector|sector]]
开始介绍一些具体应用,有些不光给出debug命令,还会列举其他方法
2。 上次我写T40评测用的D命令,用来察看主板的生产日期或者版本与生产厂
D ffff:05 察看日起
D fe00:0e 察看版本
3。 不知道bios密码怎么办?
a debug法,清除bios密码
o 70 10
o 71 10
g
g
重启
不过这一招太狠读了,还有
b debug法二,前提是进入系统
o70 21
o70 20
p
c 万能密码法,适用于较老的机型。对Award BIOS,试试下面的密码:AWARD--SR,j62,HLT,SER,
SKY_FOX,BIOSTAR,ALFAROME,lkwpeter,j256,AWARD?SW,LKWPETER,Syxz,aLLy,589589 ,589721,awkward,
COMCAT等。对AMI BIOS,试试下面的密码:AMI,BIOS,PASWORD,HEWITTRAND,AMI?SW,AMI--SW,
LKWPETER,A.M.I.等。
4。保存硬盘的引导扇区和文件分配表
这是保存C盘的引导程序,其余的类推!
L 100 2 0 1 ;0代表A,1代表B,2代表C盘, 0就是0扇区。
N c:Boot.com ;保存到
R CX ;CX寄存器用来表示写文件的大小。
:200
W
Q
5。恢复硬盘的引导扇区和文件分配表
恢复C盘的引导扇区程序
n c:boot.com
l 100
r cx
:200
w 100 2 0 1 ;其中0为A盘,1为B盘,2为C盘。依此类推!
q
6。LCD亮点或暗点检查
用F填充命令
f b800:00 f9f 20 40 (40代表红)
f b800:00 f9f 20 10 (10代表兰)
依此类推,还有20代表绿,30代表紫红,70代表灰白等
7。方便的调试程序。
例如,将一段小写字符改为大写
s ... 用DEBUG的“-S”功能检索到那个字符
e ... E改变内存命令修改字符的ASCII码(小写改大写是-20(16进制),大写改小写反之)
在例如,
如果是批量修改一个段地址下相临偏移地址的字符串,就用“-F”填充命令。
海例如,其实A指令就是一条编译指令
8。检查路由器配置及工作状态,在超级权限模式下
debug 命令可以实时显示路由器的工作情况,缺省状态下,debug信息只能在与console端口连接的
终端上显示。当然最简单还是ping或者telnet了。
9。要显示扩展内存信息,可以键入以下命令:
xs
Debug 显示与以下类似的信息:
Handle 0000 has 0000 pages allocated
Handle 0001 has 0002 pages allocated
Physical page 00 = Frame segment C000
Physical page 01 = Frame segment C400
Physical page 02 = Frame segment C800
Physical page 03 = Frame segment CC00
2 of a total 80 EMS pages have been allocated
2 of a total FF EMS handles have been allocated
10。对指定的两个参数执行十六进制运算。
h value1 value2
这样说下去没头,也不讲什么操作数、伪操作什么的了,日常没什么用。到底如何去利用debug,真想弄明白的话,还是去看汇编把。 |
|