home *** CD-ROM | disk | FTP | other *** search
- .386
- .model tiny
- cseg segment para public 'code' use16
- assume cs:cseg,ds:cseg
- org 100h
- start:
- mov ah,09h
- mov dx,offset copyright
- int 21h
- inc ah
- mov dx,offset nm
- int 21h
- mov cl,byte ptr nm+1
- cmp cl,6
- ja ok
- mov ah,09h
- mov dx,offset error
- int 21h
- ret
- ok:
- mov ah,09h
- mov dx,offset messy2
- int 21h
- movzx ecx,cl
- mov si,offset nm+3
- lea ebp,[esi+ecx-1]
- mov di,offset nm+2+100h
- push di
- dec ecx
- xor edx,edx
- l1:
- dec bp
- mov al,[bp]
- call hex2dec1
- mov al,[si]
- mov ah,al
- stosw
- add edx,2
- inc si
- loop l1
- lea ecx,[edx-4]
- pop si
- lea edi,[esi+200h]
- push di
- xor edx,edx
- l3:
- lodsb
- call hex2dec
- loop l3
- mov ecx,30h
- pop si
- mov di,offset nm+2+100h
- push di
- xor edx,edx
- l4:
- add si,2
- movsb
- sub cx,2
- inc edx
- loop l4
- pop di
- mov ecx,edx
- movzx edx,byte ptr nm+1
- mov si,offset nm+2+300h
- lea esi,[esi+edx-2]
- push di
- l5:
- movzx eax,byte ptr [di]
- movzx ebx,byte ptr [si]
- sub eax,ebx
- cdq
- xor al,dl
- sub al,dl
- add al,'0'
- inc si
- stosb
- loop l5
- mov byte ptr [di-1],'$'
- pop dx
- mov ah,09h
- int 21h
- ret
-
- hex2dec proc near
- push si
- push ecx
- push edx
- mov si,offset nm-1
- movzx eax,al
- mov ebx,10
- xor ecx,ecx
- l2:
- cdq
- div ebx
- add dl,'0'
- dec si
- mov [si],dl
- inc ecx
- or eax,eax
- jne l2
- pop edx
- add edx,ecx
- rep movsb
- pop ecx
- pop si
- ret
- hex2dec endp
-
- hex2dec1 proc near
- push si
- push ecx
- push edx
- mov si,offset nm-1
- movzx eax,al
- mov ebx,10
- xor ecx,ecx
- ll2:
- cdq
- div ebx
- add dl,'0'
- dec si
- mov [si],dl
- dec si
- mov [si],dl
- add ecx,2
- or eax,eax
- jne ll2
- pop edx
- add edx,ecx
- rep movsb
- pop ecx
- pop si
- ret
- hex2dec1 endp
-
- copyright db 13,10,'Olivers Crackme keygen by nh',13,10
- db ' ■ Name : $'
- messy2 db 13,10,' ■ Key : $'
- error db 13,10,'Too little name...$'
- nm dw 20h
-
- ends
- end start
- end
-
-