+ -
当前位置:首页 → 问答吧 → 关于用debug查看密码问题?

关于用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
-
接下来我该怎么做呢?有愿意帮忙的,请不吝赐教啊。谢谢啦~!




作者: fzn1314wudi   发布时间: 2011-05-03

你输入的字符, 应该都在buf里, 用debug的D命令来查看DS里的buf那段的空间,应该可以!

作者: masmaster   发布时间: 2011-05-03