home *** CD-ROM | disk | FTP | other *** search
/ Reverse Code Engineering RCE CD +sandman 2000 / ReverseCodeEngineeringRceCdsandman2000.iso / RCE / Quantico / km / ucf4dev1.asm.txt < prev    next >
Encoding:
Text File  |  2000-05-25  |  17.5 KB  |  658 lines

  1. .model  tiny
  2.  
  3. .386
  4.  
  5.         org 100h
  6.  
  7. .data
  8.  
  9. GroupLogo       db 13,10
  10.                 db '            ▄▄▄▄▄ ',13,10
  11.                 db '            █ ▄ █  ',13,10
  12.                 db '    █▀▀▀▀▀▀▀▀ ▄ ▀▀▀▀▀ ▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█  █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀ ▀▀▀▀█ ',13,10
  13.                 db '    █ │░███████  │▓███████▀ │░███▀█▀▀▀▀▀▀▀ ▀ ▀▀▀▀ │░███▀█▀▀▀▀▀▓████▓▄  █ ',13,10
  14.                 db '    █ │▒███████  │▓███████  │▒███████  │▓███████▀ │▒███████  │▓███████ █ ',13,10
  15.                 db '    █ │▓███████  │▓███████  │▓███████  │▓███████  │▓███████  │▓███████ █ ',13,10
  16.                 db '    ▀ │▓███████  │▓███████  │▓███████  │▓███████  │▓███████  │▓███████ █▄▄▄ ',13,10
  17.                 db '    ▀ │▓███████  │▓███████  │▓███████  │▓███████  │▓███████  │▓███████▄ ▄ █ ',13,10
  18.                 db '    █ │▓███████  │▓███████  │▓███████  │▓███████  │▓███████               █ ',13,10
  19.                 db '    █ │▓███████▄▄▄▄▄█▄█▓▀   │▓███████▄▄▄▄▄█▄████  │▓███████▀▀ ▀    ▀      █ ',13,10
  20.                 db '    █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▀ █▀▀▀▀▀▀▀▀▀ ▀ ▀▀ ',13,10
  21.                 db '    .::[ u n i t e d · c r æ c k i n g · f o r c e ]::. █ ▀ █ Antibody<SAC> ',13,10
  22.                 db '    █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▀ █▀▀▀▀▀▀▀▀▀ ▀ ▀▀ ',13,10
  23.                 db '                                -----=====-----                             ',13,10
  24.                 db '      [■]   All 4Developers Software - Key Generator by Quantico   [■]      ',13,10
  25.                 db '                                -----=====-----                             ',13,10
  26.                 db '                                 ',13,10,'$'
  27.  
  28. Whichproduct    db 13,10
  29.                 db '',13,10
  30.                 db '(1)  - ActiveX Manager v1.3    ',13,10
  31.                 db '(2)  - Add/Remove4Good v2.0    ',13,10
  32.                 db '(3)  - Cookie Terminator v1.1  ',13,10
  33.                 db '(4)  - Registry BookMarks v1.0 ',13,10
  34.                 db '(5)  - Registry Crawler v1.0   ',13,10
  35.                 db '(6)  - Talking E-mail v1.22    ',13,10
  36.  
  37.                 db '',13,10
  38.                 db 'Enter a product (1-6)   : ','$',13,10
  39.                 db ' ',13,10
  40.  
  41. IntroMsgOne     db 13,10,'Enter a name please    : ','$'
  42.            
  43.  
  44.  
  45. ErrorMsg        db 13,10,'                     Need 8-20 digits, try again...',13,10,'$'
  46.  
  47. ShowCodeMsg     db 13,10,'Registration number     : '
  48.  
  49. thestartpart    db 5 dup(0)
  50.  
  51. oneletter       db 0
  52.  
  53. CodeBuffer      db 20h dup(0),'$'
  54.  
  55. ShowCodeMsg2     db 13,10,'Registration number     : '
  56.  
  57. thestartpart2    db 5 dup(0)
  58.  
  59. CodeBuffer2      db 20h dup(0),'$'
  60.  
  61.  
  62. datatable1      db '87ae2401my69'
  63.  
  64. datatable2      db 'YMA19X@24$Z%'
  65.  
  66. datatable3      db 'V9ZQA3%T#RN2M+&X7PG85'
  67.  
  68. activex         db '6577-'
  69.  
  70. addremove       db '6582-'
  71.  
  72. cookieterm      db '6784-'
  73.  
  74. registrybook    db '8266-p'
  75.  
  76. registrycrawl   db '8267-'
  77.  
  78. talkemail       db '8469-'
  79.  
  80. temp            db 0
  81.  
  82. temp2           db 0
  83.  
  84.  
  85. NameBuffer      db 18h, 50h dup(0)
  86.  
  87.  
  88.  
  89. ProdBuffer      db 18h, 5 dup(0)
  90.  
  91. Convert_Digs     db '0123456789ABCDEF'
  92.  
  93. namelength      db 0
  94.  
  95.  
  96. .code
  97.  
  98. .startup
  99.  
  100. main    proc    near
  101.         mov     ah, 09h                       ;
  102.         lea     edx, GroupLogo                ;
  103.         int     21h                           ; show group logo
  104.  
  105.         mov     ah, 09h                       ;
  106.         lea     edx, IntroMsgOne              ;
  107.         int     21h                           ; show intro and ask for input 
  108.  
  109.         mov     bx, 1408h                     ; limits for string input
  110.         lea     edi, NameBuffer               ;
  111.         mov     esi, offset namelength
  112.         call    getstr                        ; read user input
  113.         jc      @error                        ;
  114.         xor     eax, eax                      ; clear eax
  115.  
  116.         mov    ah, 09h                       ;
  117.         lea     edx, Whichproduct             ;
  118.         int     21h                           ; show product message and ask for input 
  119.  
  120.         xor     edi, edi
  121.         xor     esi, esi
  122.         lea     edi, ProdBuffer               ;
  123.         call    getprod                           ; read user input
  124.  
  125.         xor     eax, eax                      ; clear eax
  126.  
  127. int 3
  128.         lea    dx, ProdBuffer+2              ; put what they typed into ax
  129.         movsx   eax, byte ptr [edx]
  130.         cmp     ax, 31h                       ; is ax = 1?
  131.         je      @activex                       ; go to check second digit (10-18)
  132.         cmp     ax, 32h                       ; is ax = 2
  133.         je      @addremove                       ; then go check for 2X
  134.         cmp     ax, 33h                       ; is ax = 3
  135.         je      @cookieterm                     ;  
  136.         cmp     ax, 34h                       ;  
  137.         je      @registrybook                       ;  
  138.         cmp     ax, 35h                       ; ax = 5 ?                   
  139.         je      @registrycrawl
  140.         cmp     ax, 36h
  141.         je      @talkemail
  142.  
  143. @activex:
  144.  
  145.         mov     esi, offset activex
  146.         mov     edi, offset thestartpart
  147.         mov     ecx, 05
  148.         rep     movsb 
  149.  
  150.         xor     edx, edx
  151.         movzx   eax, byte ptr [namelength]
  152.         mov     ecx, 05
  153.         div     ecx
  154.         mov     eax, offset datatable1
  155.         mov     al, byte ptr [eax+edx]
  156.         mov     byte ptr [oneletter], al
  157.         xor     eax, eax
  158.         xor     edx, edx
  159.  
  160. to_start1:
  161.         mov     ecx, 03
  162.         movzx   eax, byte ptr [temp]
  163.         xor     edx, edx
  164.         div     ecx
  165.         test    edx, edx
  166.         jne     @00401742
  167.         movzx   eax, byte ptr [temp]
  168.         mov     al, byte ptr [NameBuffer+eax+2]
  169.  
  170.         cbw
  171.         mov     cl, 02
  172.         idiv    cl
  173.         add     al, 20h
  174.         cmp     al, 5Ah
  175.         jle     @00401714
  176.         cmp     al, 61h
  177.         jge     @00401714
  178.         add     al, 06
  179. @00401714:
  180.         cmp     al, 39h
  181.         jle     @0040171E
  182.         cmp     al, 41h
  183.         jge     @0040171E
  184.         add     al, 08
  185. @0040171E:
  186.         movzx   edx, byte ptr [temp2]
  187.         inc     byte ptr [temp2]
  188.         mov     esi, offset CodeBuffer
  189.         add     esi, edx
  190.         mov     byte ptr [esi], al
  191.                 
  192. @00401742:
  193.         mov     ecx, 0Dh
  194.         movzx   eax, byte ptr [temp]
  195.         xor     edx, edx
  196.         div     ecx
  197.         test    edx, edx
  198.         jne     @0040177A
  199.  
  200.         mov     esi, offset CodeBuffer
  201.         mov     al, 00h
  202.         call    strlngth
  203.         dec     ecx
  204.         mov     byte ptr [CodeBuffer+ecx], 'x'
  205.         inc     byte ptr [temp2]
  206.  
  207. @0040177A:
  208.         inc     byte ptr [temp]
  209.         push    eax
  210.         movzx   eax, byte ptr [namelength]
  211.         cmp     al,  byte ptr [temp]
  212.         pop     eax
  213.         ja      to_start1
  214.  
  215.         mov     esi, offset CodeBuffer
  216.         mov     al, 00h
  217.         call    strlngth
  218.         dec     ecx
  219.         mov     byte ptr [CodeBuffer+ecx], 'z'
  220.  
  221.         jmp     @continue
  222.  
  223. @addremove:
  224.  
  225.  
  226.         mov     esi, offset addremove
  227.         mov     edi, offset thestartpart
  228.         mov     ecx, 05
  229.         rep     movsb 
  230.  
  231.         xor     edx, edx
  232.         movzx   eax, byte ptr [namelength]
  233.         mov     ecx, 0Ch
  234.         div     ecx
  235.         mov     eax, offset datatable1
  236.         mov     al, byte ptr [eax+edx]
  237.         mov     byte ptr [oneletter], al
  238.         xor     eax, eax
  239.         xor     edx, edx
  240.  
  241. to_start2:
  242.         test    byte ptr [temp], 01
  243.         jne     @@0040177A
  244.         movzx   eax, byte ptr [temp]
  245.         mov     al, byte ptr [NameBuffer+eax+2]
  246.  
  247.         cbw
  248.         mov     cl, 02
  249.         idiv    cl
  250.         add     al, 20h
  251.         cmp     al, 5Ah
  252.         jle     @@00401714
  253.         cmp     al, 61h
  254.         jge     @@00401714
  255.         add     al, 06
  256. @@00401714:
  257.         cmp     al, 39h
  258.         jle     @@0040171E
  259.         cmp     al, 41h
  260.         jge     @@0040171E
  261.         add     al, 08
  262. @@0040171E:
  263.         movzx   edx, byte ptr [temp2]
  264.         inc     byte ptr [temp2]
  265.         mov     esi, offset CodeBuffer
  266.         add     esi, edx
  267.         mov     byte ptr [esi], al
  268.  
  269.  
  270. @@0040177A:
  271.         inc     byte ptr [temp]
  272.         push    eax
  273.         movzx   eax, byte ptr [namelength]
  274.         cmp     al,  byte ptr [temp]
  275.         pop     eax
  276.         ja      to_start2
  277.  
  278.         jmp     @continue
  279.  
  280. @cookieterm:
  281.  
  282.         mov     esi, offset cookieterm
  283.         mov     edi, offset thestartpart
  284.         mov     ecx, 05
  285.         rep     movsb         
  286.  
  287.         xor     edx, edx
  288.         movzx   eax, byte ptr [namelength]
  289.         mov     ecx, 0Ch
  290.         div     ecx
  291.         mov     eax, offset datatable1
  292.         mov     al, byte ptr [eax+edx]
  293.         mov     byte ptr [oneletter], al
  294.         xor     eax, eax
  295.         xor     edx, edx
  296.  
  297. to_start3:
  298.         mov     ecx, 03
  299.         movzx   eax, byte ptr [temp]
  300.         xor     edx, edx
  301.         div     ecx
  302.         test    edx, edx
  303.         jne     @@@0040177A
  304.         movzx   eax, byte ptr [temp]
  305.         mov     al, byte ptr [NameBuffer+eax+2]
  306.  
  307.         cbw
  308.         mov     cl, 02
  309.         idiv    cl
  310.         add     al, 32h
  311.         cmp     al, 5Ah
  312.         jle     @@@00401714
  313.         cmp     al, 61h
  314.         jge     @@@00401714
  315.         add     al, 06
  316. @@@00401714:
  317.         cmp     al, 39h
  318.         jle     @@@0040171E
  319.         cmp     al, 41h
  320.         jge     @@@0040171E
  321.         add     al, 08
  322. @@@0040171E:
  323.         movzx   edx, byte ptr [temp2]
  324.         inc     byte ptr [temp2]
  325.         mov     esi, offset CodeBuffer
  326.         add     esi, edx
  327.         mov     byte ptr [esi], al
  328.                 
  329.  
  330.  
  331. @@@0040177A:
  332.         inc     byte ptr [temp]
  333.         push    eax
  334.         movzx   eax, byte ptr [namelength]
  335.         cmp     al,  byte ptr [temp]
  336.         pop     eax
  337.         ja      to_start3
  338.  
  339.         mov     esi, offset CodeBuffer
  340.         mov     al, 00h
  341.         call    strlngth
  342. ;        dec     ecx
  343.         mov     byte ptr [temp2], cl
  344.         add     ecx, 05
  345.         mov     eax, ecx
  346.         mov     ecx, 0Ch
  347.         cdq
  348.         idiv    ecx
  349.  
  350.         mov     eax, offset [datatable1]
  351.         mov     al, byte ptr [eax+edx]
  352.         mov     cl, byte ptr [temp2]
  353.         dec     cl
  354.         mov     byte ptr [CodeBuffer+ecx], al
  355.  
  356.         jmp     @continue
  357.  
  358. @registrybook:
  359.  
  360.         mov     esi, offset registrybook
  361.         mov     edi, offset thestartpart
  362.         mov     ecx, 06
  363.         rep     movsb 
  364.  
  365.         xor     eax, eax
  366.         xor     edx, edx
  367.  
  368. to_start4:
  369.         test    byte ptr [temp], 03
  370.         jne     @@@@0040177A
  371.         movzx   eax, byte ptr [temp]
  372.         mov     al, byte ptr [NameBuffer+eax+2]
  373.  
  374.         cbw
  375.         mov     cl, 02
  376.         idiv    cl
  377.         add     al, 25h
  378.         cmp     al, 5Ah
  379.         jle     @@@@00401714
  380.         cmp     al, 61h
  381.         jge     @@@@00401714
  382.         add     al, 06
  383. @@@@00401714:
  384.         cmp     al, 39h
  385.         jle     @@@@0040171E
  386.         cmp     al, 41h
  387.         jge     @@@@0040171E
  388.         add     al, 08
  389. @@@@0040171E:
  390.         movzx   edx, byte ptr [temp2]
  391.         inc     byte ptr [temp2]
  392.         mov     esi, offset CodeBuffer
  393.         add     esi, edx
  394.         mov     byte ptr [esi], al
  395.                 
  396.  
  397.  
  398. @@@@0040177A:
  399.         inc     byte ptr [temp]
  400.         push    eax
  401.         movzx   eax, byte ptr [namelength]
  402.         cmp     al,  byte ptr [temp]
  403.         pop     eax
  404.         ja      to_start4
  405.  
  406.         mov     esi, offset CodeBuffer
  407.         mov     al, 00h
  408.         call    strlngth
  409.         dec     ecx
  410.         mov     byte ptr [temp2], cl
  411.  
  412.         movzx   eax, byte ptr [namelength]
  413.         xor     edx, edx
  414.         mov     ecx, 0Ch
  415.         idiv    ecx
  416.         mov     al, byte ptr [datatable2+edx]
  417.         
  418.         movzx   ecx, byte ptr [temp2]
  419.         mov     byte ptr [CodeBuffer+ecx], al
  420.         
  421.         inc     byte ptr [temp2]
  422.         movzx   ecx, byte ptr [temp2]
  423.         add     ecx, 05
  424.         mov     eax, ecx
  425.         mov     ecx, 0Ch
  426.         cdq
  427.         idiv    ecx
  428.       
  429.         mov     al, byte ptr [datatable2+edx]
  430.         mov     cl, byte ptr [temp2]
  431.         mov     byte ptr [CodeBuffer+ecx], al
  432.         
  433.         jmp     @continue
  434.  
  435.  
  436. @registrycrawl:
  437.  
  438.         mov     esi, offset registrycrawl
  439.         mov     edi, offset thestartpart
  440.         mov     ecx, 05
  441.         rep     movsb         
  442.  
  443.         xor     edx, edx
  444.         movzx   eax, byte ptr [namelength]
  445.         mov     ecx, 0Ch
  446.         div     ecx
  447.         mov     eax, offset datatable2
  448.         mov     al, byte ptr [eax+edx]
  449.         mov     byte ptr [oneletter], al
  450.         xor     eax, eax
  451.         xor     edx, edx
  452. to_start5:
  453.         mov     ecx, 03
  454.         movzx   eax, byte ptr [temp]
  455.         xor     edx, edx
  456.         div     ecx
  457.         test    edx, edx
  458.         jne     @@@@@0040177A
  459.         movzx   eax, byte ptr [temp]
  460.         mov     al, byte ptr [NameBuffer+eax+2]
  461.  
  462.         cbw
  463.         mov     cl, 02
  464.         idiv    cl
  465.         add     al, 22h
  466.         cmp     al, 5Ah
  467.         jle     @@@@@00401714
  468.         cmp     al, 61h
  469.         jge     @@@@@00401714
  470.         add     al, 06
  471. @@@@@00401714:
  472.         cmp     al, 39h
  473.         jle     @@@@@0040171E
  474.         cmp     al, 41h
  475.         jge     @@@@@0040171E
  476.         add     al, 08
  477. @@@@@0040171E:
  478.         movzx   edx, byte ptr [temp2]
  479.         inc     byte ptr [temp2]
  480.         mov     esi, offset CodeBuffer
  481.         add     esi, edx
  482.         mov     byte ptr [esi], al
  483.                 
  484.  
  485.  
  486. @@@@@0040177A:
  487.         inc     byte ptr [temp]
  488.         push    eax
  489.         movzx   eax, byte ptr [namelength]
  490.         cmp     al,  byte ptr [temp]
  491.         pop     eax
  492.         ja      to_start5
  493.  
  494.          mov     esi, offset CodeBuffer
  495.         mov     al, 00h
  496.         call    strlngth
  497. ;        dec     ecx
  498.         mov     byte ptr [temp2], cl
  499.         add     ecx, 05
  500.         mov     eax, ecx
  501.         mov     ecx, 0Ch
  502.         cdq
  503.         idiv    ecx
  504.  
  505.         mov     eax, offset [datatable2]
  506.         mov     al, byte ptr [eax+edx]
  507.         mov     cl, byte ptr [temp2]
  508.         dec     cl
  509.         mov     byte ptr [CodeBuffer+ecx], al
  510.  
  511.         jmp     @continue
  512.  
  513. @talkemail:
  514.  
  515.         mov     esi, offset talkemail
  516.         mov     edi, offset thestartpart2
  517.         mov     ecx, 05
  518.         rep     movsb         
  519.         xor     eax, eax
  520.  
  521. to_start6:
  522.         mov     al, byte ptr [temp]
  523.         mov     al, byte ptr [NameBuffer+eax+2]
  524.  
  525.         imul    ax, ax, 0Dh
  526.         add     ax, 7
  527.         mov     cl, 15h
  528.         xor     edx, edx
  529.         idiv    ecx
  530.  
  531.         mov     esi, offset datatable3
  532.         add     esi, edx
  533.         mov     al, byte ptr [esi]
  534.  
  535. @@@@@@0040171E:
  536.         movzx   edx, byte ptr [temp2]
  537.         inc     byte ptr [temp2]
  538.         mov     esi, offset CodeBuffer2
  539.         add     esi, edx
  540.         mov     byte ptr [esi], al
  541.                 
  542.  
  543.  
  544. @@@@@@0040177A:
  545.         inc     byte ptr [temp]
  546.         movzx   eax, byte ptr [namelength]
  547.         cmp     al,  byte ptr [temp]
  548.         ja      to_start6
  549.         mov     ah, 09h                       ;
  550.         lea     dx, ShowCodeMsg2              ;
  551.         int     21h                           ; print serial number
  552.         jmp     @exit                         ; finished, quit
  553.  
  554.  
  555. @continue:
  556.  
  557.  
  558.         mov     ah, 09h                       ;
  559.         lea     dx, ShowCodeMsg               ;
  560.         int     21h                           ; print serial number
  561.         jmp     @exit                         ; finished, quit
  562. @error:
  563.         mov     ah, 09h
  564.         lea     dx, ErrorMsg
  565.         int     21h        
  566. @exit:
  567.         mov     al, 00h                       ;
  568.         mov     ah, 4Ch                       ;
  569.         int     21h                           ; terminate program
  570. main    endp
  571.  
  572.  
  573.  
  574. ; get string from user
  575. ; input :
  576. ;       edi = pointer to buffer
  577. ;       bl  = min length
  578. ;       bh  = max length
  579. ; output :
  580. ;    CF error, cx number of bytes read
  581. getstr  proc    near
  582.         push    dx                            ; save dx
  583.         mov     dx, di                        ;
  584.         mov     ah, 0Ah                       ;
  585.         int     021h                          ; get user input
  586.  
  587.         movsx   ecx, byte ptr [edi + 1]       ; get number of digits
  588.  
  589.         mov     byte ptr [edi + ecx + 2], 00h
  590.  
  591.         cmp     cl, bh                        ; check maximum
  592.         jg      @@0
  593.         cmp     cl, bl                        ; check minimum
  594.         jl      @@0
  595.         mov     byte ptr [esi], cl            ; store length
  596.     xor    ch, ch
  597.         clc                                   ; clear CF
  598.         jmp     @@1
  599. @@0:
  600.         stc                                   ; set CF (carry flag)        
  601. @@1:
  602.         pop     dx                            ; restore dx
  603.     ret
  604. getstr  endp
  605.  
  606.  
  607.  
  608. ; returns ECX= length of String in DS:ESI - terminated by CHAR in AL
  609. ; registers changed: ECX
  610. ; Assumes ES=DS
  611.  
  612. strlngth  PROC
  613.     pushf
  614.     push edi
  615.     push esi
  616.     push edx
  617.  
  618.     mov edi,esi
  619.     xor ecx,ecx
  620.     dec ecx
  621.     cld
  622.     repnz scasb
  623.     xor edx,edx
  624.     sub edx,ecx
  625.     dec edx
  626.     mov ecx,edx
  627.  
  628.     pop edx
  629.     pop esi
  630.     pop edi
  631.  
  632.     popf
  633.     Ret
  634.  
  635. strlngth endp
  636.  
  637.  
  638.  
  639.  
  640. getprod proc    near
  641.         push    dx                            ; save dx
  642.         mov     dx, di                        ;
  643.         mov     ah, 0Ah                       ;
  644.         int     021h                          ; get user input
  645.  
  646.         movsx   ecx, byte ptr [edi + 1]       ; get number of digits
  647.  
  648.         mov     byte ptr [edi + ecx + 2], 00h
  649.  
  650.     xor    ch, ch
  651.         clc                                   ; clear CF
  652.         pop     dx                            ; restore dx
  653.     ret
  654. getprod  endp
  655.  
  656.  
  657. end    main
  658.