短小的汇编教程.zhuan

一个密码程序,如可判断你输入的密码是正确还是错误,这个程序里必须要有个比对的正确密码。这个正确密码通常放在程序里面,也有极小的几率放在注册表。

放在程序里面的比对密码可能在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

如果有那不妥,不要乱喷。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值