⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zpass1.asm

📁 硬盘狗程序
💻 ASM
字号:
.MODEL tiny
.CODE
DISKIO equ 13h
VIDEO equ 10h
      org 200h
GetPassWord proc
PassBegin:
MyRoutine:
     push cs
     pop ds
     mov di,offset HeadMsg
     call Put_Str
     mov di,offset PSWBuffer
     call ReadStr
     mov si,offset PSWBuffer
     mov di,offset Password
     mov cl,byte ptr [di]
     mov ch,byte ptr [si]
     cmp cl,ch
     jnz NoMatch
     xor ch,ch
     repe cmpsb
     jz right
NoMatch:
     mov di,offset ErrorMsg
     call Put_Str
DeadLoop:
     jmp DeadLoop
Right:
     mov di,offset RC
     call Put_Str
     ret
ReadStr proc near
     push es
     push di
     push cs
     pop es
     inc di
     mov Plength,0
Next:
     cmp PLength,15
     jge @l1
     mov ah,1
     int 16h
     jz Next
     mov ax,0
     int 16h
     cmp al,0
     je next
     cmp al,08
     je @l2
     cmp al,13
     je @l1
     sub al,20
     or al,80h
     stosb
     mov al,'*'
     mov bx,0
     mov ah,0eh
     int 10h
     inc PLength
     jmp next
@l2:
     cmp PLength,0
     je next
     dec di
     mov al,00h
     stosb
     mov ah,03h
     mov bh,00h
     int 10h
     mov al,' '
     mov ah,0eh
     int 10h
     mov ah,02h
     int 10h
     dec PLength
     dec di
     jmp next
@l1:
     pop di
     mov al,byte ptr PLength
     mov byte ptr [di],al
     pop es
     ret
ReadStr endp
Put_Str proc
     mov al,cs:[di]
     cmp al,'$'
     je A1
     mov ah,0eh
     mov bx,0003h
     int video
     inc di
     jmp Put_Str
A1:  ret
Put_Str endp
PLength db 0
HeadMsg db "Waking up Babysoft-HDKeeper... ok.",0ah,0dh,0ah,0dh
	db 'Password: ','$'
RC      db 0ah,0dh,0ah,0dh,'$'
PassTail:
PassLen equ 1024-(PassTail-PassBegin)
	db PassLen dup(0)
	org PassBegin+1024
GetPassword endp
     org 600h
GetPass Proc
PBegin:
     push ax
     push cx
     push ds
     push es
     push si
     push di
     xor ax,ax
     mov ds,ax
     mov ax,ds:[3f0h]
     mov ds,ax
     mov es,ax
     mov di,offset PSWBuffer
     call PReadStr
     mov si,offset PSWBuffer
     mov di,offset Password
     mov cl,byte ptr [di]
     mov ch,byte ptr [si]
     cmp cl,ch
     jnz $t1
     xor ch,ch
     repe cmpsb
     mov ax,1075
     mov cx,5
     jz Right2
$t1:
     add ax,200
     call Music
     call Delay
     loop $t1
     call NoSound
     pop di
     pop si
     pop es
     pop ds
     pop cx
     pop ax
     stc
     ret
Right2:
     mov ax,2275
$t4:
     sub ax,200
     call Music
     call Delay
     loop $t4
     call NoSound
     pop di
     pop si
     pop es
     pop ds
     pop cx
     pop ax
     clc
     ret
PReadstr proc near
     push es
     push di
     inc di
     mov Plength,0
PNext:
     cmp Plength,15
     jge @Pl1
     mov ah,1
     int 16h
     jz PNext
     mov ax,0
     int 16h
     cmp al,0
     je Pnext
     cmp al,08
     je @Pl2
     cmp al,13
     je @Pl1
     sub al,20
     or al,80h
     stosb
     inc PLength
     jmp Pnext
@Pl2:
     cmp PLength,0
     je PNext
     dec di
     mov al,00h
     stosb
     dec PLength
     dec di
     jmp PNext
@Pl1:
     pop di
     mov al,byte ptr Plength
     mov byte ptr [di],al
     pop es
     ret
PReadstr endp
timer2 equ 42h
tim_ctr equ 43h
port_b equ 61h
Music Proc
      push ax
      mov al,10110110b 
      out tim_ctr,al
      pop ax
      out timer2,al
      mov al,ah
      out timer2,al
      in al,port_b
      or al,00000011b
      out port_b,al
      ret
Music EndP
NoSound proc
      in al,port_b
      and al,11111100b
      out port_b,al
      ret
NoSound Endp
Delay Proc
      push si
      mov si,0A000h
@j1:
      dec si
      cmp si,0
      jnz @j1
      pop si
      ret
Delay Endp
ErrorMsg db 07h,0ah,0dh,0ah,0dh,'Sorry! You are Unwelcome Guest!',0ah,0dh
	 db 'I can not let you in!',0ah,0dh
	 db 'Ha!Ha!Ha!...','$'
Ptail:
RestLen equ 200h-(Ptail-PBegin)-32
        db RestLen dup(0)
        org PBegin+200h-32
PASSWORD db 0,15 dup(0)
PSWBuffer db 0,15 dup(1)
GetPass endp
	END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -