home *** CD-ROM | disk | FTP | other *** search
- .model tiny
-
- .386
-
- org 100h
-
- .data
-
- GroupLogo db 13,10
- db ' ▄▄▄▄▄ ',13,10
- db ' █ ▄ █ ',13,10
- db ' █▀▀▀▀▀▀▀▀ ▄ ▀▀▀▀▀ ▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀ ▀▀▀▀█ ',13,10
- db ' █ │░███████ │▓███████▀ │░███▀█▀▀▀▀▀▀▀ ▀ ▀▀▀▀ │░███▀█▀▀▀▀▀▓████▓▄ █ ',13,10
- db ' █ │▒███████ │▓███████ │▒███████ │▓███████▀ │▒███████ │▓███████ █ ',13,10
- db ' █ │▓███████ │▓███████ │▓███████ │▓███████ │▓███████ │▓███████ █ ',13,10
- db ' ▀ │▓███████ │▓███████ │▓███████ │▓███████ │▓███████ │▓███████ █▄▄▄ ',13,10
- db ' ▀ │▓███████ │▓███████ │▓███████ │▓███████ │▓███████ │▓███████▄ ▄ █ ',13,10
- db ' █ │▓███████ │▓███████ │▓███████ │▓███████ │▓███████ █ ',13,10
- db ' █ │▓███████▄▄▄▄▄█▄█▓▀ │▓███████▄▄▄▄▄█▄████ │▓███████▀▀ ▀ ▀ █ ',13,10
- db ' █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▀ █▀▀▀▀▀▀▀▀▀ ▀ ▀▀ ',13,10
- db ' .::[ u n i t e d · c r æ c k i n g · f o r c e ]::. █ ▀ █ Antibody<SAC> ',13,10
- db ' █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▀ █▀▀▀▀▀▀▀▀▀ ▀ ▀▀ ',13,10
- db ' -----=====----- ',13,10
- db ' [■] All 4Developers Software - Key Generator by Quantico [■] ',13,10
- db ' -----=====----- ',13,10
- db ' ',13,10,'$'
-
- Whichproduct db 13,10
- db '',13,10
- db '(1) - ActiveX Manager v1.3 ',13,10
- db '(2) - Add/Remove4Good v2.0 ',13,10
- db '(3) - Cookie Terminator v1.1 ',13,10
- db '(4) - Registry BookMarks v1.0 ',13,10
- db '(5) - Registry Crawler v1.0 ',13,10
- db '(6) - Talking E-mail v1.22 ',13,10
-
- db '',13,10
- db 'Enter a product (1-6) : ','$',13,10
- db ' ',13,10
-
- IntroMsgOne db 13,10,'Enter a name please : ','$'
-
-
-
- ErrorMsg db 13,10,' Need 8-20 digits, try again...',13,10,'$'
-
- ShowCodeMsg db 13,10,'Registration number : '
-
- thestartpart db 5 dup(0)
-
- oneletter db 0
-
- CodeBuffer db 20h dup(0),'$'
-
- ShowCodeMsg2 db 13,10,'Registration number : '
-
- thestartpart2 db 5 dup(0)
-
- CodeBuffer2 db 20h dup(0),'$'
-
-
- datatable1 db '87ae2401my69'
-
- datatable2 db 'YMA19X@24$Z%'
-
- datatable3 db 'V9ZQA3%T#RN2M+&X7PG85'
-
- activex db '6577-'
-
- addremove db '6582-'
-
- cookieterm db '6784-'
-
- registrybook db '8266-p'
-
- registrycrawl db '8267-'
-
- talkemail db '8469-'
-
- temp db 0
-
- temp2 db 0
-
-
- NameBuffer db 18h, 50h dup(0)
-
-
-
- ProdBuffer db 18h, 5 dup(0)
-
- Convert_Digs db '0123456789ABCDEF'
-
- namelength db 0
-
-
- .code
-
- .startup
-
- main proc near
- mov ah, 09h ;
- lea edx, GroupLogo ;
- int 21h ; show group logo
-
- mov ah, 09h ;
- lea edx, IntroMsgOne ;
- int 21h ; show intro and ask for input
-
- mov bx, 1408h ; limits for string input
- lea edi, NameBuffer ;
- mov esi, offset namelength
- call getstr ; read user input
- jc @error ;
- xor eax, eax ; clear eax
-
- mov ah, 09h ;
- lea edx, Whichproduct ;
- int 21h ; show product message and ask for input
-
- xor edi, edi
- xor esi, esi
- lea edi, ProdBuffer ;
- call getprod ; read user input
-
- xor eax, eax ; clear eax
-
- int 3
- lea dx, ProdBuffer+2 ; put what they typed into ax
- movsx eax, byte ptr [edx]
- cmp ax, 31h ; is ax = 1?
- je @activex ; go to check second digit (10-18)
- cmp ax, 32h ; is ax = 2
- je @addremove ; then go check for 2X
- cmp ax, 33h ; is ax = 3
- je @cookieterm ;
- cmp ax, 34h ;
- je @registrybook ;
- cmp ax, 35h ; ax = 5 ?
- je @registrycrawl
- cmp ax, 36h
- je @talkemail
-
- @activex:
-
- mov esi, offset activex
- mov edi, offset thestartpart
- mov ecx, 05
- rep movsb
-
- xor edx, edx
- movzx eax, byte ptr [namelength]
- mov ecx, 05
- div ecx
- mov eax, offset datatable1
- mov al, byte ptr [eax+edx]
- mov byte ptr [oneletter], al
- xor eax, eax
- xor edx, edx
-
- to_start1:
- mov ecx, 03
- movzx eax, byte ptr [temp]
- xor edx, edx
- div ecx
- test edx, edx
- jne @00401742
- movzx eax, byte ptr [temp]
- mov al, byte ptr [NameBuffer+eax+2]
-
- cbw
- mov cl, 02
- idiv cl
- add al, 20h
- cmp al, 5Ah
- jle @00401714
- cmp al, 61h
- jge @00401714
- add al, 06
- @00401714:
- cmp al, 39h
- jle @0040171E
- cmp al, 41h
- jge @0040171E
- add al, 08
- @0040171E:
- movzx edx, byte ptr [temp2]
- inc byte ptr [temp2]
- mov esi, offset CodeBuffer
- add esi, edx
- mov byte ptr [esi], al
-
- @00401742:
- mov ecx, 0Dh
- movzx eax, byte ptr [temp]
- xor edx, edx
- div ecx
- test edx, edx
- jne @0040177A
-
- mov esi, offset CodeBuffer
- mov al, 00h
- call strlngth
- dec ecx
- mov byte ptr [CodeBuffer+ecx], 'x'
- inc byte ptr [temp2]
-
- @0040177A:
- inc byte ptr [temp]
- push eax
- movzx eax, byte ptr [namelength]
- cmp al, byte ptr [temp]
- pop eax
- ja to_start1
-
- mov esi, offset CodeBuffer
- mov al, 00h
- call strlngth
- dec ecx
- mov byte ptr [CodeBuffer+ecx], 'z'
-
- jmp @continue
-
- @addremove:
-
-
- mov esi, offset addremove
- mov edi, offset thestartpart
- mov ecx, 05
- rep movsb
-
- xor edx, edx
- movzx eax, byte ptr [namelength]
- mov ecx, 0Ch
- div ecx
- mov eax, offset datatable1
- mov al, byte ptr [eax+edx]
- mov byte ptr [oneletter], al
- xor eax, eax
- xor edx, edx
-
- to_start2:
- test byte ptr [temp], 01
- jne @@0040177A
- movzx eax, byte ptr [temp]
- mov al, byte ptr [NameBuffer+eax+2]
-
- cbw
- mov cl, 02
- idiv cl
- add al, 20h
- cmp al, 5Ah
- jle @@00401714
- cmp al, 61h
- jge @@00401714
- add al, 06
- @@00401714:
- cmp al, 39h
- jle @@0040171E
- cmp al, 41h
- jge @@0040171E
- add al, 08
- @@0040171E:
- movzx edx, byte ptr [temp2]
- inc byte ptr [temp2]
- mov esi, offset CodeBuffer
- add esi, edx
- mov byte ptr [esi], al
-
-
- @@0040177A:
- inc byte ptr [temp]
- push eax
- movzx eax, byte ptr [namelength]
- cmp al, byte ptr [temp]
- pop eax
- ja to_start2
-
- jmp @continue
-
- @cookieterm:
-
- mov esi, offset cookieterm
- mov edi, offset thestartpart
- mov ecx, 05
- rep movsb
-
- xor edx, edx
- movzx eax, byte ptr [namelength]
- mov ecx, 0Ch
- div ecx
- mov eax, offset datatable1
- mov al, byte ptr [eax+edx]
- mov byte ptr [oneletter], al
- xor eax, eax
- xor edx, edx
-
- to_start3:
- mov ecx, 03
- movzx eax, byte ptr [temp]
- xor edx, edx
- div ecx
- test edx, edx
- jne @@@0040177A
- movzx eax, byte ptr [temp]
- mov al, byte ptr [NameBuffer+eax+2]
-
- cbw
- mov cl, 02
- idiv cl
- add al, 32h
- cmp al, 5Ah
- jle @@@00401714
- cmp al, 61h
- jge @@@00401714
- add al, 06
- @@@00401714:
- cmp al, 39h
- jle @@@0040171E
- cmp al, 41h
- jge @@@0040171E
- add al, 08
- @@@0040171E:
- movzx edx, byte ptr [temp2]
- inc byte ptr [temp2]
- mov esi, offset CodeBuffer
- add esi, edx
- mov byte ptr [esi], al
-
-
-
- @@@0040177A:
- inc byte ptr [temp]
- push eax
- movzx eax, byte ptr [namelength]
- cmp al, byte ptr [temp]
- pop eax
- ja to_start3
-
- mov esi, offset CodeBuffer
- mov al, 00h
- call strlngth
- ; dec ecx
- mov byte ptr [temp2], cl
- add ecx, 05
- mov eax, ecx
- mov ecx, 0Ch
- cdq
- idiv ecx
-
- mov eax, offset [datatable1]
- mov al, byte ptr [eax+edx]
- mov cl, byte ptr [temp2]
- dec cl
- mov byte ptr [CodeBuffer+ecx], al
-
- jmp @continue
-
- @registrybook:
-
- mov esi, offset registrybook
- mov edi, offset thestartpart
- mov ecx, 06
- rep movsb
-
- xor eax, eax
- xor edx, edx
-
- to_start4:
- test byte ptr [temp], 03
- jne @@@@0040177A
- movzx eax, byte ptr [temp]
- mov al, byte ptr [NameBuffer+eax+2]
-
- cbw
- mov cl, 02
- idiv cl
- add al, 25h
- cmp al, 5Ah
- jle @@@@00401714
- cmp al, 61h
- jge @@@@00401714
- add al, 06
- @@@@00401714:
- cmp al, 39h
- jle @@@@0040171E
- cmp al, 41h
- jge @@@@0040171E
- add al, 08
- @@@@0040171E:
- movzx edx, byte ptr [temp2]
- inc byte ptr [temp2]
- mov esi, offset CodeBuffer
- add esi, edx
- mov byte ptr [esi], al
-
-
-
- @@@@0040177A:
- inc byte ptr [temp]
- push eax
- movzx eax, byte ptr [namelength]
- cmp al, byte ptr [temp]
- pop eax
- ja to_start4
-
- mov esi, offset CodeBuffer
- mov al, 00h
- call strlngth
- dec ecx
- mov byte ptr [temp2], cl
-
- movzx eax, byte ptr [namelength]
- xor edx, edx
- mov ecx, 0Ch
- idiv ecx
- mov al, byte ptr [datatable2+edx]
-
- movzx ecx, byte ptr [temp2]
- mov byte ptr [CodeBuffer+ecx], al
-
- inc byte ptr [temp2]
- movzx ecx, byte ptr [temp2]
- add ecx, 05
- mov eax, ecx
- mov ecx, 0Ch
- cdq
- idiv ecx
-
- mov al, byte ptr [datatable2+edx]
- mov cl, byte ptr [temp2]
- mov byte ptr [CodeBuffer+ecx], al
-
- jmp @continue
-
-
- @registrycrawl:
-
- mov esi, offset registrycrawl
- mov edi, offset thestartpart
- mov ecx, 05
- rep movsb
-
- xor edx, edx
- movzx eax, byte ptr [namelength]
- mov ecx, 0Ch
- div ecx
- mov eax, offset datatable2
- mov al, byte ptr [eax+edx]
- mov byte ptr [oneletter], al
- xor eax, eax
- xor edx, edx
- to_start5:
- mov ecx, 03
- movzx eax, byte ptr [temp]
- xor edx, edx
- div ecx
- test edx, edx
- jne @@@@@0040177A
- movzx eax, byte ptr [temp]
- mov al, byte ptr [NameBuffer+eax+2]
-
- cbw
- mov cl, 02
- idiv cl
- add al, 22h
- cmp al, 5Ah
- jle @@@@@00401714
- cmp al, 61h
- jge @@@@@00401714
- add al, 06
- @@@@@00401714:
- cmp al, 39h
- jle @@@@@0040171E
- cmp al, 41h
- jge @@@@@0040171E
- add al, 08
- @@@@@0040171E:
- movzx edx, byte ptr [temp2]
- inc byte ptr [temp2]
- mov esi, offset CodeBuffer
- add esi, edx
- mov byte ptr [esi], al
-
-
-
- @@@@@0040177A:
- inc byte ptr [temp]
- push eax
- movzx eax, byte ptr [namelength]
- cmp al, byte ptr [temp]
- pop eax
- ja to_start5
-
- mov esi, offset CodeBuffer
- mov al, 00h
- call strlngth
- ; dec ecx
- mov byte ptr [temp2], cl
- add ecx, 05
- mov eax, ecx
- mov ecx, 0Ch
- cdq
- idiv ecx
-
- mov eax, offset [datatable2]
- mov al, byte ptr [eax+edx]
- mov cl, byte ptr [temp2]
- dec cl
- mov byte ptr [CodeBuffer+ecx], al
-
- jmp @continue
-
- @talkemail:
-
- mov esi, offset talkemail
- mov edi, offset thestartpart2
- mov ecx, 05
- rep movsb
- xor eax, eax
-
- to_start6:
- mov al, byte ptr [temp]
- mov al, byte ptr [NameBuffer+eax+2]
-
- imul ax, ax, 0Dh
- add ax, 7
- mov cl, 15h
- xor edx, edx
- idiv ecx
-
- mov esi, offset datatable3
- add esi, edx
- mov al, byte ptr [esi]
-
- @@@@@@0040171E:
- movzx edx, byte ptr [temp2]
- inc byte ptr [temp2]
- mov esi, offset CodeBuffer2
- add esi, edx
- mov byte ptr [esi], al
-
-
-
- @@@@@@0040177A:
- inc byte ptr [temp]
- movzx eax, byte ptr [namelength]
- cmp al, byte ptr [temp]
- ja to_start6
- mov ah, 09h ;
- lea dx, ShowCodeMsg2 ;
- int 21h ; print serial number
- jmp @exit ; finished, quit
-
-
- @continue:
-
-
- mov ah, 09h ;
- lea dx, ShowCodeMsg ;
- int 21h ; print serial number
- jmp @exit ; finished, quit
- @error:
- mov ah, 09h
- lea dx, ErrorMsg
- int 21h
- @exit:
- mov al, 00h ;
- mov ah, 4Ch ;
- int 21h ; terminate program
- main endp
-
-
-
- ; get string from user
- ; input :
- ; edi = pointer to buffer
- ; bl = min length
- ; bh = max length
- ; output :
- ; CF error, cx number of bytes read
- getstr proc near
- push dx ; save dx
- mov dx, di ;
- mov ah, 0Ah ;
- int 021h ; get user input
-
- movsx ecx, byte ptr [edi + 1] ; get number of digits
-
- mov byte ptr [edi + ecx + 2], 00h
-
- cmp cl, bh ; check maximum
- jg @@0
- cmp cl, bl ; check minimum
- jl @@0
- mov byte ptr [esi], cl ; store length
- xor ch, ch
- clc ; clear CF
- jmp @@1
- @@0:
- stc ; set CF (carry flag)
- @@1:
- pop dx ; restore dx
- ret
- getstr endp
-
-
-
- ; returns ECX= length of String in DS:ESI - terminated by CHAR in AL
- ; registers changed: ECX
- ; Assumes ES=DS
-
- strlngth PROC
- pushf
- push edi
- push esi
- push edx
-
- mov edi,esi
- xor ecx,ecx
- dec ecx
- cld
- repnz scasb
- xor edx,edx
- sub edx,ecx
- dec edx
- mov ecx,edx
-
- pop edx
- pop esi
- pop edi
-
- popf
- Ret
-
- strlngth endp
-
-
-
-
- getprod proc near
- push dx ; save dx
- mov dx, di ;
- mov ah, 0Ah ;
- int 021h ; get user input
-
- movsx ecx, byte ptr [edi + 1] ; get number of digits
-
- mov byte ptr [edi + ecx + 2], 00h
-
- xor ch, ch
- clc ; clear CF
- pop dx ; restore dx
- ret
- getprod endp
-
-
- end main
-