📄 cddae.asm
字号:
; Easy CD-DA Extractor 3 Key Generator.
; @Author: CrackZ.
; @Date: 01/01/2000.
; TASM cddae.asm
; TLINK /3 /t cddae
; Nice scheme, uses a prefix and a fair amount of maths
; to generate a 3 part code.
codesg segment
assume cs:codesg
assume ds:codesg
org 100h
.386
start: jmp begin
;-----DATA-----
Copyofname DB 32 dup('$')
Firstcode DD 0
GetName DB '[?] Please Insert Your Name: ','$'
Logo DB 10,13,'[Easy CD-DA Extractor 3 Key Generator] ',10,13
DB '[Key Generator by CrackZ - 01/01/2000] ',10,13,10,13,'$'
Namebuff DB 32 dup('$')
Outbuff DB 38 dup('$')
Outcode DB 10,13,'[i] Your Registration Code is: ','$'
Prefix DB "EZCDDAX3-",0
Secondcode DD 0
;-----END DATA-----
begin: MOV EDX, offset Logo
MOV AH, 09h
INT 21h
MOV EDX, offset Getname
MOV AH, 09h
INT 21h
MOV EDX, offset Namebuff
MOV AH, 0Ah
INT 21h
MOVZX EBX, BYTE PTR Namebuff+1
MOV BYTE PTR [EBX+EDX+1], 20h
MOV ESI, offset Namebuff+2
ADD ESI, EBX
MOV ECX, 20h
SUB ECX, EBX
XOR EAX, EAX
extendnamespaces:
MOV AL, 20h
MOV BYTE PTR [ESI+ECX-1], AL
LOOP extendnamespaces
MOV CX, 20h
SUB ESI, EBX
CALL lowercase
CALL makecopyofname
XCHG EAX, ESI
XOR EBX, EBX
@00401309:
ADD BYTE PTR [EAX], BL
XOR EDX, EDX
MOV ECX, EBX
MOV DL, BYTE PTR [EAX]
SUB ECX, 12h
INC EBX
IMUL EDX, ECX
MOV BYTE PTR [EAX], DL
XOR BYTE PTR [EAX], 0AAh
ADD BYTE PTR [EAX], 45h
INC EAX
CMP EBX, 20h
JB @00401309
MOV EDI, offset Namebuff+2
@00401326:
MOV ECX, DWORD PTR [EDI+0Ch]
MOV EAX, DWORD PTR [EDI+4h]
IMUL ECX, DWORD PTR [EDI+10h]
IMUL ECX, DWORD PTR [EDI+14h]
IMUL ECX, DWORD PTR [EDI+18h]
IMUL DWORD PTR [EDI+8h]
IMUL ECX, DWORD PTR [EDI+1Ch]
MOV EDX, DWORD PTR [EDI]
XOR EAX, EDX
XOR EAX, ECX
IMUL EAX, 094F5A133h
MOV [Firstcode], EAX ; Store first result.
MOV ESI, offset Copyofname
MOV ECX, 20h
REPZ
MOVSB ; Restore copy.
SUB EDI, 20h
XOR BYTE PTR [EDI], 0B1h
MOV EBX, 1h
XCHG EAX, EDI
@004013A5:
MOV DL, BYTE PTR [EAX]
XOR ECX, ECX
ADD BYTE PTR [EAX+1h], DL
XOR EDX, EDX
MOV DL, BYTE PTR [EAX]
MOV CL, BYTE PTR [EAX+1h]
ADD EDX, 69h
INC EBX
IMUL ECX, EDX
MOV BYTE PTR [EAX+1h], CL
MOV CL, BYTE PTR [EAX]
ADD CL, 0AAh
XOR BYTE PTR [EAX+1h], CL
MOV DL, BYTE PTR [EAX]
IMUL DX, WORD PTR [EAX+1h]
MOV BYTE PTR [EAX+1h], DL
INC EAX
CMP EBX, 20h
JB @004013A5
MOV EDI, offset Namebuff+2
MOV EAX, DWORD PTR [EDI]
MOV ECX, DWORD PTR [EDI+4h]
XOR EAX, ECX
MOV EDX, DWORD PTR [EDI+8h]
XOR EAX, EDX
MOV ECX, DWORD PTR [EDI+0Ch]
IMUL ECX, DWORD PTR [EDI+10h]
XOR EAX, ECX
MOV EDX, DWORD PTR [EDI+14h]
XOR EAX, EDX
MOV ECX, DWORD PTR [EDI+18h]
XOR EAX, ECX
MOV EDX, DWORD PTR [EDI+1Ch]
XOR EAX, EDX
IMUL EAX, 012449812h
XOR EAX, 0AAAABBCCh
MOV [Secondcode], EAX ; Store second result.
MOV ESI, offset Copyofname
MOV ECX, 20h
REPZ
MOVSB ; Restore copy.
SUB EDI, 20h
XOR EBX, EBX
XOR ESI, ESI
@00401430:
XOR EAX, EAX
MOV AL, BYTE PTR [EDI]
MOV EDX, EAX
INC EBX
SHL EDX, 4h
INC EDI
ADD EDX, EAX
LEA EDX, [EAX+4*EDX]
SHL EDX, 4h
ADD EDX, EAX
SHL EDX, 4h
ADD EDX, EAX
ADD EDX, ESI
CMP EBX, 20h
MOV ESI, EDX
JB @00401430
MOV EAX, ESI
MOV ECX, 03E8h
CDQ
IDIV ECX
MOV EAX, EDX ; Store 3rd.
MOV EDI, offset Outbuff+2
MOV ESI, offset Prefix
MOV ECX, 9h
REPZ
MOVSB
MOV EDX, ECX
XOR ESI, ESI
MOV EBX, [Firstcode]
CALL outputhex
MOV BYTE PTR [ESI+EDI], 02Dh ; Add the hyphen.
INC ESI
MOV EBX, [Secondcode]
CALL outputhex
MOV BYTE PTR [ESI+EDI], 02Dh ; Add 2nd hyphen.
XOR EBX, EBX
MOV ECX, 0Ah
INC ESI
CALL outputnum
MOV EDX, offset Outcode
MOV AH, 09h
INT 21h
MOV EDX, offset Outbuff+2
MOV AH, 09h
INT 21h
JMP endprg
;-----FUNCTIONS-----
lowercase:
MOV AL, BYTE PTR [ESI+ECX-1]
CMP AL, 5Ah
JA lowercasenextletter
CMP AL, 39h
JB lowercasenextletter
ADD AL, 20h
MOV BYTE PTR [ESI+ECX-1], AL
lowercasenextletter:
DEC ECX
JNZ lowercase
RET
makecopyofname:
MOV EDI, offset Copyofname
MOV ECX, 20h
REPZ
MOVSB
SUB ESI, 20h
RET
outputhex:
MOV ECX, 8h
outputhex1:
ROL EBX,04h
MOV DL,BL
AND DL,0Fh
ADD DL,'0'
CMP DL,'9'
JBE outputhex2
ADD DL,07h
outputhex2:
MOV BYTE PTR [ESI+EDI], DL
INC ESI
LOOP outputhex1
RET
outputnum:
XOR EDX,EDX
DIV ECX
ADD EDX,30h
PUSH EDX
INC EBX
TEST EAX,EAX
JNZ outputnum
outputnum2:
POP EDX
MOV BYTE PTR [ESI+EDI],DL
INC EDI
DEC EBX
JNZ outputnum2
RET
endprg: MOV AX,4C00h ;Exit
INT 21h
codesg ends
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -