; ====================================================================================== ; = AxMan v3.01 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 ; -------- Initialised Data ------------------------------------------------------------ .data szSerial db '000-000-000',0 StringFmat db '%s%sMy Love',0 Fmat db '%lu',0 ; -------- UnInitialised Data ---------------------------------------------------------- .data? szName db 32 dup (?) szCompany db 32 dup (?) szBuffer db 99 dup (?) ; -------- Program Code ---------------------------------------------------------------- .code Start: ; Print Message PrintM "AxMan v3.01 *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 ; Read Company PrintM "Company: " invoke Input, addr szCompany, 30 ; Calculate Serial# mov esi, offset szName mov edi, offset szName @@: lodsb .IF al >= 'A' && al <= 'Z' add al,20h stosb .ELSEIF al != 20h stosb .ENDIF or al,al jnz @B mov esi, offset szCompany mov edi, offset szCompany @@: lodsb .IF al >= 'A' && al <= 'Z' add al,20h stosb .ELSEIF al != 20h stosb .ENDIF or al,al jnz @B invoke wsprintf, addr szBuffer, addr StringFmat, addr szName, addr szCompany xor ecx,ecx mov ebx, offset szBuffer @LabelA: movzx eax, byte ptr [ebx] or al,al jz @LabelB shl ecx,4 add ecx,eax inc bx mov eax,ecx and eax,0F0000000h jz @LabelC mov esi,eax shr esi,18h xor ecx,esi @LabelC: not eax and ecx,eax jmp @LabelA @LabelB: invoke wsprintf, addr szBuffer, addr Fmat, ecx xor bx,bx mov esi, offset szBuffer mov edi, offset szSerial @LabelE: lodsb or al,al jz @LabelD .IF bx == 3 mov bx, 1 inc di .ELSE inc bx .ENDIF stosb jmp @LabelE @LabelD: ; Print Serial PrintFM <"Serial : %s">, addr szSerial ; Exit Exit 0 end Start |