一个密码程序,如可判断你输入的密码是正确还是错误,这个程序里必须要有个比对的正确密码。这个正确密码通常放在程序里面,也有极小的几率放在注册表。
放在程序里面的比对密码可能在DATA段也可能在CODE段,个人认为在CODE段比较安全应为CODE是禁止写入的,下面这代码在编译的时候会产生一个error2048错误。
这个证明了code段是禁止写入的,如果密码放在这里。才程序运行的时候是不能改写比对的密码的,不过好像也可以通过堆栈来改。
DATA SEGMENT
X WORD 1234 这里是比对密码
Y WORD "OK$",0
Z WORD 400 DUP(?) 输入的缓冲区
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AH,3F 输入密码
MOV BX,0
MOV CX,4
MOV DX,OFFSET Z
INT 21
CMP X,AX
JE L1
JNE L2
L1: MOV AH,09 现实OK
MOV DX,Y
INT 21
L2:MOV AX,4C00H
INT 21H
CODE ENDS
END START
如果有那不妥,不要乱喷。
短小的汇编教程.zhuan
最新推荐文章于 2024-09-19 21:43:01 发布