关于用debug查看密码问题?
时间:2011-05-03
来源:互联网
这是题目:从键盘输入8个字符(不带回显),存入KEYBUF缓冲区后,在转存到PASSWARD存储区,并在debug下查看该缓冲区的保密通行字。编写在实地址方式下的程序,要有提示输入信息。
这是写的程序:
DATAS SEGMENT
n equ 8
buf db n+1
count db 0
char db n+1 dup(?),'$'
password db n+1 dup(?) ,'$'
prompt db 'please 8 character',13,10,'$'
stars db '#','$'
DATAS ENDS
STACKS SEGMENT
db 128 dup(?)
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
lea dx,prompt
mov ah,9
int 21h
mov cx,8 ;通过键盘循环读入8个字符的密码 存入到 buf中,即键盘keybuf 缓冲区
mov si,0
again: mov ah,7
int 21h
mov buf[si],al
lea dx,stars
mov ah,09
int 21h
inc si
loop again
mov cx,8 ;循环将keybuf 里面的内容读出到password 段里面
mov si,0
xagain:
mov dl,buf[si]
mov password[si],dl
inc si
loop xagain
MOV AH,4CH
INT 21H
CODES ENDS
END START
这是一部分调试截图:
F:\Masm>0.exe
please 8 character
********
F:\Masm>debug 0.exe
-u
0B6A:0000 B85F0B MOV AX,0B5F
0B6A:0003 8ED8 MOV DS,AX
0B6A:0005 8D161600 LEA DX,[0016]
0B6A:0009 B409 MOV AH,09
0B6A:000B CD21 INT 21
0B6A:000D B90800 MOV CX,0008
0B6A:0010 BE0000 MOV SI,0000
0B6A:0013 B407 MOV AH,07
0B6A:0015 CD21 INT 21
0B6A:0017 88840000 MOV [SI+0000],AL
0B6A:001B 8D162B00 LEA DX,[002B]
0B6A:001F B409 MOV AH,09
-
接下来我该怎么做呢?有愿意帮忙的,请不吝赐教啊。谢谢啦~!
这是写的程序:
DATAS SEGMENT
n equ 8
buf db n+1
count db 0
char db n+1 dup(?),'$'
password db n+1 dup(?) ,'$'
prompt db 'please 8 character',13,10,'$'
stars db '#','$'
DATAS ENDS
STACKS SEGMENT
db 128 dup(?)
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
lea dx,prompt
mov ah,9
int 21h
mov cx,8 ;通过键盘循环读入8个字符的密码 存入到 buf中,即键盘keybuf 缓冲区
mov si,0
again: mov ah,7
int 21h
mov buf[si],al
lea dx,stars
mov ah,09
int 21h
inc si
loop again
mov cx,8 ;循环将keybuf 里面的内容读出到password 段里面
mov si,0
xagain:
mov dl,buf[si]
mov password[si],dl
inc si
loop xagain
MOV AH,4CH
INT 21H
CODES ENDS
END START
这是一部分调试截图:
F:\Masm>0.exe
please 8 character
********
F:\Masm>debug 0.exe
-u
0B6A:0000 B85F0B MOV AX,0B5F
0B6A:0003 8ED8 MOV DS,AX
0B6A:0005 8D161600 LEA DX,[0016]
0B6A:0009 B409 MOV AH,09
0B6A:000B CD21 INT 21
0B6A:000D B90800 MOV CX,0008
0B6A:0010 BE0000 MOV SI,0000
0B6A:0013 B407 MOV AH,07
0B6A:0015 CD21 INT 21
0B6A:0017 88840000 MOV [SI+0000],AL
0B6A:001B 8D162B00 LEA DX,[002B]
0B6A:001F B409 MOV AH,09
-
接下来我该怎么做呢?有愿意帮忙的,请不吝赐教啊。谢谢啦~!
作者: fzn1314wudi 发布时间: 2011-05-03
你输入的字符, 应该都在buf里, 用debug的D命令来查看DS里的buf那段的空间,应该可以!
作者: masmaster 发布时间: 2011-05-03
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28