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

  1. ; This wasn't meant to be released as source.. but wtf....
  2.  
  3. ; enjoy it! ;) - oh btw.. this was spread thru Stone's homepage - find me :)
  4.  
  5.  
  6.  
  7. .MODEL SMALL
  8.  
  9. .STACK 100h
  10.  
  11. .386
  12.  
  13.  
  14.  
  15. .DATA         
  16.  
  17. input     DB 22h,0         ; Allow usernames up till 16 Chars - disregard more
  18.  
  19. sentence  DB 22h dup ('$')   ; buffer to store real input at
  20.  
  21. stat1     DW 0             ; Statistic no.1. - (half the serial)
  22.  
  23. stat2     DW 0             ; Statistic no.2. - (other half the serial)
  24.  
  25. count     DW 0ffFFh        ; byte need to count with
  26.  
  27. flaf DB 0
  28.  
  29. rightkeytxt DB 'The key is: '
  30.  
  31. rightkey  DB '12345678',10,13,'$' ; Store the generated key here 
  32.  
  33.  
  34.  
  35. introtxt  DB 'Enter your name: ','$'
  36.  
  37. lnfd      DB 10,13,'$'     ; Line feed 
  38.  
  39. reginfo   DB 'Username: $'
  40.  
  41. UCF       DB '─────────────────────────────────────────',10,13
  42.  
  43.           DB '  ▄▄▄   ▄▄▄    ▄▄▄▄▄▄▄▄▄    ▄▄▄▄▄▄▄▄▄   ',10,13
  44.  
  45.           DB '  ███   ███    ███          ███▄▄▄      ',10,13
  46.  
  47.           DB '  ███▄  ███    ███▄         ███         ',10,13
  48.  
  49.           DB '  ▀▀▀▀▀▀▀▀▀    ▀▀▀▀▀▀▀▀▀    ▀▀▀         ',10,13
  50.  
  51.           DB '─────────────────────────────────────────',10,13
  52.  
  53.           DB ' u N I T E D  c R Æ C K I N G  f O R C E ',10,13
  54.  
  55.           DB '─────────────────────────────────────────',10,13
  56.  
  57.           DB '   WinZip 6.2 & 6.3 Beta 5 Keymaker',10,13
  58.  
  59.           DB ' By Drone [F4CG] & Stone [UCF] (C) 1997',10,13,10,13,'$'
  60.  
  61.  
  62.  
  63.  
  64.  
  65. .CODE
  66.  
  67. START:
  68.  
  69.     MOV AX, @DATA              ; Make DS&ES point to the DATA
  70.  
  71.     MOV DS,AX
  72.  
  73.     MOV ES,AX
  74.  
  75.  
  76.  
  77.     LEA EDX, [ucf]           ; Prime example of non efficient coding :)
  78.  
  79.     MOV AH,9h
  80.  
  81.     INT 21h
  82.  
  83.  
  84.  
  85.     LEA EDX,[introtxt]         ; Write the introductory text
  86.  
  87.     MOV AH,9h
  88.  
  89.     INT 21h
  90.  
  91.  
  92.  
  93.     LEA EDX,[input]            ; Fetch Input
  94.  
  95.     XOR EBX,EBX
  96.  
  97.     MOV AH,0ah
  98.  
  99.     INT 21h
  100.  
  101.  
  102.  
  103.     CMP BYTE PTR [input+1],0   ; did the sucker type nothing?
  104.  
  105.     JZ nokey
  106.  
  107.  
  108.  
  109.     MOVZX EBX, BYTE PTR [input +1]   ; zero-terminate
  110.  
  111.     MOV BYTE PTR [sentence+EBX],0h
  112.  
  113.  
  114.  
  115.  
  116.  
  117.     LEA EDX, [lnfd]                 ; Write a linefeed
  118.  
  119.     MOV AH,9h
  120.  
  121.     INT 21h
  122.  
  123.  
  124.  
  125.  
  126.  
  127.     XOR EBX,EBX
  128.  
  129.     genstat1:
  130.  
  131.     INC     WORD PTR [count]             ; Increase counter
  132.  
  133.     INC     EBX
  134.  
  135.     LEA     EAX,[sentence+EBX-1]         
  136.  
  137.     MOVZX   EAX,BYTE PTR [EAX]          
  138.  
  139.     TEST    EAX,EAX                     
  140.  
  141.     JZ      endstat1
  142.  
  143.     LEA     EAX,[sentence+EBX-1]
  144.  
  145.     MOVZX   EAX,BYTE PTR [EAX]
  146.  
  147.     MOVZX   ECX,WORD PTR [count]
  148.  
  149.     IMUL    EAX,ECX
  150.  
  151.     MOVZX   ECX,WORD PTR [stat1]
  152.  
  153.     ADD     EAX,ECX
  154.  
  155.     MOV     [stat1],AX
  156.  
  157.     JMP     genstat1
  158.  
  159. endstat1:
  160.  
  161.  
  162.  
  163.     XOR EBX,EBX
  164.  
  165.     MOV WORD PTR [count],0ffffh
  166.  
  167.     genstat2:
  168.  
  169.     INC     DWORD PTR [count]          ; Counter - ini =0
  170.  
  171.     INC     EBX
  172.  
  173.     LEA     EAX,[Sentence+EBX-1]        ; username
  174.  
  175.     MOVZX   EAX,BYTE PTR [EAX]
  176.  
  177.     TEST    EAX,EAX
  178.  
  179.     JZ      endstat2
  180.  
  181.     PUSH    00001021h
  182.  
  183.     LEA     EAX,[Sentence+EBX-1]
  184.  
  185.     MOVZX   AX,BYTE PTR [EAX]
  186.  
  187.     PUSH    EAX                 
  188.  
  189.     PUSH    DWORD PTR [STAT2]          ; ebp-8 = stat2
  190.  
  191.     CALL    c40AF3C  
  192.  
  193.  
  194.  
  195.     ADD     ESP,0Ah    ;?
  196.  
  197.     MOV     WORD PTR [STAT2],AX
  198.  
  199.        JMP     genstat2
  200.  
  201. endstat2:
  202.  
  203.  
  204.  
  205.     MOV AX, WORD PTR [STAT2]
  206.  
  207.     ADD AX, 63h
  208.  
  209.     SHL EAX,16
  210.  
  211.     MOV AX, WORD PTR [stat1]
  212.  
  213.     MOV ESI,EAX
  214.  
  215.  
  216.  
  217.         LEA EBX, [rightkey+8]
  218.  
  219.         CALL al1
  220.  
  221.         
  222.  
  223.         MOV EAX, ESI    ; Fetch ax
  224.  
  225.         SHR EAX,4
  226.  
  227.         CALL al1
  228.  
  229.  
  230.  
  231.  
  232.  
  233.         MOV EAX, ESI    ; Fetch ax
  234.  
  235.         SHR EAX, 8
  236.  
  237.         CALL al1
  238.  
  239.  
  240.  
  241.  
  242.  
  243.         MOV EAX, ESI    ; Fetch ax
  244.  
  245.         SHR EAX, 12
  246.  
  247.         CALL al1
  248.  
  249.  
  250.  
  251.         MOV EAX, ESI    ; Fetch ax
  252.  
  253.         SHR EAX, 16
  254.  
  255.         CALL al1
  256.  
  257.  
  258.  
  259.         MOV EAX, ESI    ; Fetch ax
  260.  
  261.         SHR EAX, 20
  262.  
  263.         CALL al1
  264.  
  265.  
  266.  
  267.  
  268.  
  269.         MOV EAX, ESI   ; Fetch ax
  270.  
  271.         SHR EAX, 24
  272.  
  273.         CALL al1
  274.  
  275.  
  276.  
  277.  
  278.  
  279.         MOV EAX, ESI    ; Fetch ax
  280.  
  281.         SHR EAX, 28
  282.  
  283.         CALL al1
  284.  
  285.  
  286.  
  287.     LEA EDX, [reginfo]
  288.  
  289.     MOV AH,9
  290.  
  291.     INT 21h
  292.  
  293.  
  294.  
  295.     LEA EDX,[sentence]
  296.  
  297.     MOV AH,9h
  298.  
  299.     INT 21h
  300.  
  301.  
  302.  
  303.  
  304.  
  305.     LEA EDX, [lnfd]
  306.  
  307.     MOV AH,9
  308.  
  309.     INT 21h
  310.  
  311.  
  312.  
  313.     LEA EDX, [rightkeytxt]
  314.  
  315.     MOV AH,9h
  316.  
  317.     INT 21h
  318.  
  319.  
  320.  
  321. nokey:
  322.  
  323.     MOV AH,4ch
  324.  
  325.     INT 21h
  326.  
  327.  
  328.  
  329. al1:
  330.  
  331.         DEC EBX
  332.  
  333.     SHL AL,4                     ; fetch first half byte
  334.  
  335.     SHR AL,4
  336.  
  337.     ADD AL,055d                  ; make it a letter
  338.  
  339.     CMP AL,41h                 ; was it really a number?
  340.  
  341.         JGE endal1
  342.  
  343.         SUB AL,7
  344.  
  345. endal1:
  346.  
  347.     MOV BYTE PTR [EBX],AL
  348.  
  349.  
  350.  
  351. RET
  352.  
  353.  
  354.  
  355.  
  356.  
  357. c40AF3C:
  358.  
  359.     PUSH    EBP
  360.  
  361.     MOV     EBP,ESP
  362.  
  363.     ADD     ESP,04
  364.  
  365.     SUB     EBP,2
  366.  
  367.     PUSH    EBX
  368.  
  369.     PUSH    ESI
  370.  
  371.     PUSH    EDI
  372.  
  373.     SHL     WORD PTR [EBP+0Ch],08
  374.  
  375.     MOV     DWORD PTR [EBP-04],00000000
  376.  
  377.     JMP     d40AF59
  378.  
  379. d40af56:
  380.  
  381.     INC     DWORD PTR [EBP-04]
  382.  
  383. d40af59:
  384.  
  385.     CMP     DWORD PTR [EBP-04],08
  386.  
  387.     JGE     d40AF98
  388.  
  389.     MOVZX   EAX,WORD PTR [EBP+0Ch]
  390.  
  391.     MOVZX   ECX,WORD PTR [EBP+08]
  392.  
  393.     XOR     EAX,ECX
  394.  
  395.     TEST    AH,080h
  396.  
  397.     JZ      d40AF8B
  398.  
  399.     MOVZX   EAX,WORD PTR [EBP+08]
  400.  
  401.     ADD     EAX,EAX
  402.  
  403.     MOVZX   ECX,WORD PTR [EBP+010h]
  404.  
  405.     XOR     EAX,ECX
  406.  
  407.     MOV     [EBP+08],AX
  408.  
  409.     JMP     d40AF8F
  410.  
  411. d40af8b:
  412.  
  413.     SHL     WORD PTR [EBP+08],1
  414.  
  415. d40af8f:
  416.  
  417.     SHL     WORD PTR [EBP+0Ch],1
  418.  
  419.     JMP     d40AF56
  420.  
  421. d40af98:
  422.  
  423.     MOV     AX,[EBP+08]
  424.  
  425.     POP     EDI
  426.  
  427.     POP     ESI
  428.  
  429.     POP     EBX
  430.  
  431.     RET
  432.  
  433.     
  434.  
  435.  
  436.  
  437. END  START
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.