📄 quintcd.asm
字号:
; Quintessential CD v1.0/v1.1 Key Generator.
; CrackZ (30/06/98) - Updated (21/07/98).
;
; Use tasm /zi quintcd.asm and then tlink /v quintcd
; to generate quintcd.exe
.MODEL SMALL
.STACK 100h
.386
.DATA
input DB 22h,0
prompt DB 'Input your Registration Name (min 6 chars): ','$'
done DB 'Your Registration Code is: ','$'
lf DB 0ah,0dh,'$'
logo DB 0ah,0dh, '--------------------------------------',0ah,0dh
DB ' Quintessential CD v1.x Key Generator ',0ah,0dh
DB ' by CrackZ ',0ah,0dh
DB '--------------------------------------',0ah,0dh
DB 0ah,0dh,'$'
.CODE
START: MOV AX,@DATA
MOV DS,AX
MOV ES,AX
LEA EDX,[logo]
MOV AH,09h
INT 21h ;Display Logo.
LEA EDX,[prompt]
MOV AH,09h
INT 21h ;Prompt.
LEA EDX,[input]
MOV AH,0Ah
INT 21h ;Get registration name.
LEA EDX,[lf]
MOV AH,09h
INT 21h
LEA EDX,input+2 ;Name.
XOR EAX,EAX
XOR EBX,EBX ;Clear some registers.
func1: MOVZX ECX, BYTE PTR [EDX-01] ;Get length of name.
CMP ECX, 6h ;Check name was at least 6.
PUSH ECX ;Push name length on stack.
JB endprg ;Jump name is short.
loop1: MOV CL, BYTE PTR [EDX] ;1st character of name.
XOR ESI,ESI
XOR EDI,EDI ;Clean more registers.
MOV EAX, 1h ;EAX=1h.
loop2: CMP CL, 20h ;Check for space.
JZ check
MOVSX ECX,CL
MOV EBX,EAX
LEA EAX,[EAX+2*EAX]
IMUL EBX,ECX
ADD EBX,ESI
ADD EDI,EBX
ADD ESI,ECX ;Maths part of key generator.
check: POP ECX ;Retrieve name length from stack.
DEC ECX ;Decrement.
TEST ECX,ECX
JZ func2 ;Jump name done.
rpt: PUSH ECX
INC EDX ;Else point at next character of name.
MOV CL, BYTE PTR [EDX]
JMP loop2 ;Loop.
func2: XOR EDX,EDX
MOV ECX,0FFFFh
DIV ECX
MOV EAX,EDI
MOV EDI,0FFFFh
MOV ECX,EDX
CDQ
IDIV EDI
MOV EAX,ESI
MOV ESI,0FFh
SHL EDX,10h
OR ECX,EDX
CDQ
IDIV ESI
OR ECX,EDX ;Good code is now ECX.
MOV EBX,ECX ;Place result in EBX for output.
LEA EDX,[done]
MOV AH,09h
INT 21h ;"Your Registration Code is".
;Output HEX.
PUSHA ;Save all registers.
MOV CX,8
loop3: ROL EBX,4
MOV DL,BL
AND DL,0Fh
ADD DL,'0'
CMP DL,'9'
JBE loop4
ADD DL,7
loop4: MOV AH,2
INT 21h
LOOP loop3
POPA
endprg: LEA EDX,[lf]
MOV AH,09h
INT 21h
MOV AX,4C00h
INT 21h
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -