; ======================================================================================
; = WinZip v7.0 Keygenerator - (C) 1999 Teraphy / Phrozen Crew - http://teraphy.cjb.net
; ======================================================================================
.486
.model flat, stdcall
; -------- Include Files and Libraries -------------------------------------------------
include windows.inc
include elib32.inc
includelib elib32.lib
include kernel32.inc
includelib kernel32.lib
include user32.inc
includelib user32.lib
; -------- UnInitialised Data ----------------------------------------------------------
.data?
szName db 32 dup (?)
Save0 dd ?
Save1 dw ?
; -------- Program Code ----------------------------------------------------------------
.code
Start:
; Print Message
PrintM "WinZip v7.0 *Keygen*",CrLf, \
"(C) 1999 Teraphy",CrLf, \
"Name : "
; Read Name
invoke Input, addr szName, 30
; Check user input
.IF eax == 0
PrintM "Error : Name too short"
Exit -1
.ENDIF
; Calculate Serial#
mov esi,offset szName
xor edi,edi
xor ebx,ebx
LabelA:
xor eax,eax
lodsb
or al,al
jz LabelB
imul eax,edi
inc edi
add ebx,eax
jmp LabelA
LabelB:
mov Save1, bx
mov Save0,0
mov esi,offset szName
LabelG:
lodsb
push esi
or al,al
jz LabelC
xor ecx,ecx
mov cx,ax
xchg ch,cl
mov eax,Save0
mov edx,8
LabelF:
mov esi,ecx
xor esi,eax
test si,8000h
je LabelD
add eax,eax
xor eax,1021h
jmp LabelE
LabelD:
shl eax,1
LabelE:
shl ecx,1
dec edx
jnz LabelF
mov Save0,eax
pop esi
jmp LabelG
LabelC:
pop esi
mov eax,Save0
add eax,63h
xor ecx,ecx
mov cx,ax
shl ecx,16
mov cx,Save1
; Print Serial
PrintFM <"Serial: %.8lX">, ecx
; Exit
Exit 0
end Start
|