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

  1. Code Segment Byte Public
  2. Assume   Ds:Code,Cs:Code
  3. Org  100h
  4. P386
  5.  
  6. Start:  jmp Main
  7. Logo  DB "   ───═══════════════════════════[ CuteFTP 2.x ] ═════════════════════════───",10,13
  8.       DB "                     [■] CuteFTP ver2.x Key-Maker By The+Q [■]               ",10,13
  9.       DB "   ───═══════════════════════════[    The+Q    ] ═════════════════════════───",10,13,10,13,'$'
  10. NewLine DB 10,13,10,13,'$'
  11. GetMsg DB " [?] Please Enter Name : $"
  12. Stat1  DB " [■] Creating new file..",10,13,'$'
  13. Stat2  DB " [■] Encrypting new encryption-table head..",10,13,'$'
  14. Stat3  DB " [■] Calculating Name CRC..",10,13,'$'
  15. Stat4  DB " [■] Encrypting Name CRC..",10,13,'$'
  16. Stat5  DB " [■] Encrypting Name..",10,13,'$'
  17. Stat6  DB " [Ω] CuteFTP key file ready. Copy it to CuteFTP main directory.",10,13
  18.        DB "     EnJoY!",10,13,'$'
  19.  
  20.  
  21. FileName DB "CUTEFTP.KEY",0
  22. hfile    DW 0
  23. Count DB 0
  24. NewHeadSTR  DB 'Cracked By The+Q Phrozen Crew 98'
  25. Encrypt_Table DB  071h,005h,000h,000h,055h,02Eh,000h,000h,077h,072h,000h,000h,06Bh,06Ah,000h,000
  26.               DB  07Fh,073h,000h,000h,0ABh,00Bh,000h,000h,046h,056h,000h,000h,0BDh,074h,000h,000
  27.               DB  0EFh,0E1h,0E8h,0EEh,0E6h,0EBh,0E3h,0E4h,0E9h,0E7h,0E2h,0EDh,0ECh,0E0h,0E5h,0EAh
  28.               DB  04Fh,041h,048h,04Eh,046h,04Bh,043h,044h,049h,047h,042h,04Dh,04Ch,040h,045h,04Ah
  29.               DB  0DFh,0D1h,0D8h,0DEh,0D6h,0DBh,0D3h,0D4h,0D9h,0D7h,0D2h,0DDh,0DCh,0D0h,0D5h,0DAh
  30.               DB  01Fh,011h,018h,01Eh,016h,01Bh,013h,014h,019h,017h,012h,01Dh,01Ch,010h,015h,01Ah
  31.               DB  02Fh,021h,028h,02Eh,026h,02Bh,023h,024h,029h,027h,022h,02Dh,02Ch,020h,025h,02Ah
  32.               DB  0FFh,0F1h,0F8h,0FEh,0F6h,0FBh,0F3h,0F4h,0F9h,0F7h,0F2h,0FDh,0FCh,0F0h,0F5h,0FAh
  33.               DB  0BFh,0B1h,0B8h,0BEh,0B6h,0BBh,0B3h,0B4h,0B9h,0B7h,0B2h,0BDh,0BCh,0B0h,0B5h,0BAh
  34.               DB  08Fh,081h,088h,08Eh,086h,08Bh,083h,084h,089h,087h,082h,08Dh,08Ch,080h,085h,08Ah
  35.               DB  03Fh,031h,038h,03Eh,036h,03Bh,033h,034h,039h,037h,032h,03Dh,03Ch,030h,035h,03Ah
  36.               DB  0AFh,0A1h,0A8h,0AEh,0A6h,0ABh,0A3h,0A4h,0A9h,0A7h,0A2h,0ADh,0ACh,0A0h,0A5h,0AAh
  37.               DB  06Fh,061h,068h,06Eh,066h,06Bh,063h,064h,069h,067h,062h,06Dh,06Ch,060h,065h,06Ah
  38.               DB  0CFh,0C1h,0C8h,0CEh,0C6h,0CBh,0C3h,0C4h,0C9h,0C7h,0C2h,0CDh,0CCh,0C0h,0C5h,0CAh
  39.               DB  05Fh,051h,058h,05Eh,056h,05Bh,053h,054h,059h,057h,052h,05Dh,05Ch,050h,055h,05Ah
  40.               DB  09Fh,091h,098h,09Eh,096h,09Bh,093h,094h,099h,097h,092h,09Dh,09Ch,090h,095h,09Ah
  41.               DB  00Fh,001h,008h,00Eh,006h,00Bh,003h,004h,009h,007h,002h,00Dh,00Ch,000h,005h,00Ah
  42.               DB  07Fh,071h,078h,07Eh,076h,07Bh,073h,074h,079h,077h,072h,07Dh,07Ch,070h,075h,07Ah
  43.               DB  0A7h,0ADh,0AEh,0A3h,0A0h,0A6h,0A9h,0AAh,0A1h,0A2h,0A8h,0A5h,0ABh,0ACh,0A4h,0AFh
  44.               DB  007h,00Dh,00Eh,003h,000h,006h,009h,00Ah,001h,002h,008h,005h,00Bh,00Ch,004h,00Fh
  45.               DB  097h,09Dh,09Eh,093h,090h,096h,099h,09Ah,091h,092h,098h,095h,09Bh,09Ch,094h,09Fh
  46.               DB  0E7h,0EDh,0EEh,0E3h,0E0h,0E6h,0E9h,0EAh,0E1h,0E2h,0E8h,0E5h,0EBh,0ECh,0E4h,0EFh
  47.               DB  067h,06Dh,06Eh,063h,060h,066h,069h,06Ah,061h,062h,068h,065h,06Bh,06Ch,064h,06Fh
  48.               DB  037h,03Dh,03Eh,033h,030h,036h,039h,03Ah,031h,032h,038h,035h,03Bh,03Ch,034h,03Fh
  49.               DB  0F7h,0FDh,0FEh,0F3h,0F0h,0F6h,0F9h,0FAh,0F1h,0F2h,0F8h,0F5h,0FBh,0FCh,0F4h,0FFh
  50.               DB  057h,05Dh,05Eh,053h,050h,056h,059h,05Ah,051h,052h,058h,055h,05Bh,05Ch,054h,05Fh
  51.               DB  017h,01Dh,01Eh,013h,010h,016h,019h,01Ah,011h,012h,018h,015h,01Bh,01Ch,014h,01Fh
  52.               DB  0D7h,0DDh,0DEh,0D3h,0D0h,0D6h,0D9h,0DAh,0D1h,0D2h,0D8h,0D5h,0DBh,0DCh,0D4h,0DFh
  53.               DB  0C7h,0CDh,0CEh,0C3h,0C0h,0C6h,0C9h,0CAh,0C1h,0C2h,0C8h,0C5h,0CBh,0CCh,0C4h,0CFh
  54.               DB  077h,07Dh,07Eh,073h,070h,076h,079h,07Ah,071h,072h,078h,075h,07Bh,07Ch,074h,07Fh
  55.               DB  0B7h,0BDh,0BEh,0B3h,0B0h,0B6h,0B9h,0BAh,0B1h,0B2h,0B8h,0B5h,0BBh,0BCh,0B4h,0BFh
  56.               DB  047h,04Dh,04Eh,043h,040h,046h,049h,04Ah,041h,042h,048h,045h,04Bh,04Ch,044h,04Fh
  57.               DB  027h,02Dh,02Eh,023h,020h,026h,029h,02Ah,021h,022h,028h,025h,02Bh,02Ch,024h,02Fh
  58.               DB  087h,08Dh,08Eh,083h,080h,086h,089h,08Ah,081h,082h,088h,085h,08Bh,08Ch,084h,08Fh
  59.               DB  02Ch,021h,02Ah,02Fh,029h,022h,026h,028h,020h,02Dh,023h,024h,02Eh,027h,025h,02Bh
  60.               DB  0CCh,0C1h,0CAh,0CFh,0C9h,0C2h,0C6h,0C8h,0C0h,0CDh,0C3h,0C4h,0CEh,0C7h,0C5h,0CBh
  61.               DB  04Ch,041h,04Ah,04Fh,049h,042h,046h,048h,040h,04Dh,043h,044h,04Eh,047h,045h,04Bh
  62.               DB  01Ch,011h,01Ah,01Fh,019h,012h,016h,018h,010h,01Dh,013h,014h,01Eh,017h,015h,01Bh
  63.               DB  07Ch,071h,07Ah,07Fh,079h,072h,076h,078h,070h,07Dh,073h,074h,07Eh,077h,075h,07Bh
  64.               DB  0ACh,0A1h,0AAh,0AFh,0A9h,0A2h,0A6h,0A8h,0A0h,0ADh,0A3h,0A4h,0AEh,0A7h,0A5h,0ABh
  65.               DB  0BCh,0B1h,0BAh,0BFh,0B9h,0B2h,0B6h,0B8h,0B0h,0BDh,0B3h,0B4h,0BEh,0B7h,0B5h,0BBh
  66.               DB  06Ch,061h,06Ah,06Fh,069h,062h,066h,068h,060h,06Dh,063h,064h,06Eh,067h,065h,06Bh
  67.               DB  08Ch,081h,08Ah,08Fh,089h,082h,086h,088h,080h,08Dh,083h,084h,08Eh,087h,085h,08Bh
  68.               DB  05Ch,051h,05Ah,05Fh,059h,052h,056h,058h,050h,05Dh,053h,054h,05Eh,057h,055h,05Bh
  69.               DB  03Ch,031h,03Ah,03Fh,039h,032h,036h,038h,030h,03Dh,033h,034h,03Eh,037h,035h,03Bh
  70.               DB  0FCh,0F1h,0FAh,0FFh,0F9h,0F2h,0F6h,0F8h,0F0h,0FDh,0F3h,0F4h,0FEh,0F7h,0F5h,0FBh
  71.               DB  0DCh,0D1h,0DAh,0DFh,0D9h,0D2h,0D6h,0D8h,0D0h,0DDh,0D3h,0D4h,0DEh,0D7h,0D5h,0DBh
  72.               DB  00Ch,001h,00Ah,00Fh,009h,002h,006h,008h,000h,00Dh,003h,004h,00Eh,007h,005h,00Bh
  73.               DB  0ECh,0E1h,0EAh,0EFh,0E9h,0E2h,0E6h,0E8h,0E0h,0EDh,0E3h,0E4h,0EEh,0E7h,0E5h,0EBh
  74.               DB  09Ch,091h,09Ah,09Fh,099h,092h,096h,098h,090h,09Dh,093h,094h,09Eh,097h,095h,09Bh
  75.               DB  04Dh,042h,048h,044h,046h,04Fh,04Bh,041h,04Ah,049h,043h,04Eh,045h,040h,04Ch,047h
  76.               DB  0BDh,0B2h,0B8h,0B4h,0B6h,0BFh,0BBh,0B1h,0BAh,0B9h,0B3h,0BEh,0B5h,0B0h,0BCh,0B7h
  77.               DB  02Dh,022h,028h,024h,026h,02Fh,02Bh,021h,02Ah,029h,023h,02Eh,025h,020h,02Ch,027h
  78.               DB  0EDh,0E2h,0E8h,0E4h,0E6h,0EFh,0EBh,0E1h,0EAh,0E9h,0E3h,0EEh,0E5h,0E0h,0ECh,0E7h
  79.               DB  0FDh,0F2h,0F8h,0F4h,0F6h,0FFh,0FBh,0F1h,0FAh,0F9h,0F3h,0FEh,0F5h,0F0h,0FCh,0F7h
  80.               DB  00Dh,002h,008h,004h,006h,00Fh,00Bh,001h,00Ah,009h,003h,00Eh,005h,000h,00Ch,007h
  81.               DB  08Dh,082h,088h,084h,086h,08Fh,08Bh,081h,08Ah,089h,083h,08Eh,085h,080h,08Ch,087h
  82.               DB  0DDh,0D2h,0D8h,0D4h,0D6h,0DFh,0DBh,0D1h,0DAh,0D9h,0D3h,0DEh,0D5h,0D0h,0DCh,0D7h
  83.               DB  03Dh,032h,038h,034h,036h,03Fh,03Bh,031h,03Ah,039h,033h,03Eh,035h,030h,03Ch,037h
  84.               DB  0CDh,0C2h,0C8h,0C4h,0C6h,0CFh,0CBh,0C1h,0CAh,0C9h,0C3h,0CEh,0C5h,0C0h,0CCh,0C7h
  85.               DB  09Dh,092h,098h,094h,096h,09Fh,09Bh,091h,09Ah,099h,093h,09Eh,095h,090h,09Ch,097h
  86.               DB  07Dh,072h,078h,074h,076h,07Fh,07Bh,071h,07Ah,079h,073h,07Eh,075h,070h,07Ch,077h
  87.               DB  05Dh,052h,058h,054h,056h,05Fh,05Bh,051h,05Ah,059h,053h,05Eh,055h,050h,05Ch,057h
  88.               DB  0ADh,0A2h,0A8h,0A4h,0A6h,0AFh,0ABh,0A1h,0AAh,0A9h,0A3h,0AEh,0A5h,0A0h,0ACh,0A7h
  89.               DB  06Dh,062h,068h,064h,066h,06Fh,06Bh,061h,06Ah,069h,063h,06Eh,065h,060h,06Ch,067h
  90.               DB  01Dh,012h,018h,014h,016h,01Fh,01Bh,011h,01Ah,019h,013h,01Eh,015h,010h,01Ch,017h
  91. Buffer_8 DB  'Cracked '
  92. ;---───────════════════════════════════════════════════════════════───────----
  93. Main:    lea dx,Logo
  94.          Call PrintMSG
  95.          lea dx,GetMsg
  96.          Call PrintMSG
  97.         lea edi,@heap_loc
  98.         Mov ecx,100h
  99.         xor al,al
  100.         rep stosb
  101.  
  102.         Mov byte ptr [@heap_loc],0D0h
  103.         lea dx,@heap_loc
  104.         mov ah,0ah
  105.         int 21h
  106.  
  107.          lea dx,NewLine
  108.          Call PrintMSG
  109.          lea dx,Stat1
  110.          Call PrintMSG
  111.         Mov ah,3Ch
  112.         Xor cx,cx
  113.         lea dx,FileName
  114.         int 21h
  115.         Mov hfile,ax
  116.  
  117.          lea dx,Stat2
  118.          Call PrintMSG
  119.         Mov count,0
  120. @Enc_Head:
  121.         lea esi,NewHeadSTR
  122.         Xor eax,eax
  123.         Mov al,Count
  124.         Mov cl,8
  125.         Mul cl
  126.         Add esi,eax
  127.  
  128.         lea edi,Buffer_8
  129.         Mov ecx,8
  130.         repnz movsb
  131.         Call Encrypt_Buffer_8
  132.         Mov ah,40h
  133.         Mov bx,hfile
  134.         mov cx,8
  135.         lea dx,Buffer_8
  136.         Int 21h
  137.  
  138.         Inc Count
  139.         Cmp byte ptr Count,4
  140.         Jnz @Enc_Head
  141.  
  142.         lea esi,NewHeadSTR
  143.     lea edi, Encrypt_Table
  144.         Mov ecx,20h
  145.         repnz movsb
  146.  
  147.          lea dx,Stat3
  148.          Call PrintMSG
  149.         lea esi,[@heap_loc+2]
  150.         lea edi,@heap_loc
  151.         movzx ecx,byte ptr [@heap_loc+1]
  152.         Push ecx
  153.         repnz movsb
  154.  
  155.         xor al,al
  156.         Stosb
  157.         Pop eax
  158.         Mov ecx,0D7h
  159.         Sub ecx,eax
  160.         mov al,20h
  161.         repnz stosb
  162.  
  163.         lea edi,@heap_loc
  164.         Xor edx,edx
  165.         Xor eax,eax
  166. @Calc_CRC:
  167.         Movsx ecx, byte ptr [edi+eax]
  168.         Add edx,ecx
  169.         Inc eax
  170.         Cmp eax,50h
  171.         Jb @Calc_CRC
  172.         Mov ecx,edx
  173.          lea dx,Stat4
  174.          Call PrintMSG
  175.         Mov dword ptr Buffer_8, ecx
  176.         Mov dword ptr [Buffer_8+4],0
  177.  
  178.         Call Encrypt_Buffer_8
  179.         Mov ah,40h
  180.         Mov bx,hfile
  181.         mov cx,8
  182.         lea dx,Buffer_8
  183.         Int 21h
  184.  
  185.          lea dx,Stat5
  186.          Call PrintMSG
  187.         Mov count,0
  188. @Enc_name:
  189.         lea esi,@heap_loc
  190.         Xor eax,eax
  191.         Mov al,Count
  192.         Mov cl,8
  193.         Mul cl
  194.         Add esi,eax
  195.  
  196.         lea edi,Buffer_8
  197.         Mov ecx,8
  198.         repnz movsb
  199.         Call Encrypt_Buffer_8
  200.         Mov ah,40h
  201.         Mov bx,hfile
  202.         mov cx,8
  203.         lea dx,Buffer_8
  204.         Int 21h
  205.  
  206.         Inc Count
  207.         Cmp byte ptr Count,1Bh
  208.         Jnz @Enc_name
  209.  
  210.         mov ah,3eh
  211.         mov bx,hfile
  212.         int 21h
  213.  
  214.          lea dx,Stat6
  215.          Call PrintMSG
  216.     mov ax,4c00h
  217.     int 21h
  218. ;---───────════════════════════════════════════════════════════════───────----
  219. ;                               PROCEDUREs
  220. PrintMSG PROC
  221.         Push ax
  222.         mov ah,9
  223.         Int 21h
  224.         Pop ax
  225.         RET
  226. PrintMSG ENDP
  227.  
  228. Encrypt_Buffer_8        PROC
  229.     lea esi, Encrypt_Table
  230.         Mov ebx, dword ptr [Buffer_8]
  231.         Mov edi, dword ptr [Buffer_8+4]
  232.  
  233.         Mov eax,ebx
  234.         Add eax, dword ptr [Esi]
  235.         Call Encrypt_value
  236.         Xor edi,eax
  237.         Mov eax,edi
  238.         Add eax, dword ptr [Esi+4]
  239.         Call Encrypt_value
  240.         Xor ebx,eax
  241.         Mov eax,ebx
  242.         Add eax, dword ptr [Esi+8]
  243.         Call Encrypt_value
  244.         Xor edi,eax
  245.         Mov eax,edi
  246.         Add eax, dword ptr [Esi+0Ch]
  247.         Call Encrypt_value
  248.         Xor ebx,eax
  249.         Mov eax,ebx
  250.         Add eax, dword ptr [Esi+10h]
  251.         Call Encrypt_value
  252.         Xor edi,eax
  253.         Mov eax,edi
  254.         Add eax, dword ptr [Esi+14h]
  255.         Call Encrypt_value
  256.         Xor ebx,eax
  257.         Mov eax,ebx
  258.         Add eax, dword ptr [Esi+18h]
  259.         Call Encrypt_value
  260.         Xor edi,eax
  261.         Mov eax,edi
  262.         Add eax, dword ptr [Esi+1ch]
  263.         Call Encrypt_value
  264.         Xor ebx,eax
  265.  
  266.         Mov eax,ebx
  267.         Add eax, dword ptr [Esi]
  268.         Call Encrypt_value
  269.         Xor edi,eax
  270.         Mov eax,edi
  271.         Add eax, dword ptr [Esi+4]
  272.         Call Encrypt_value
  273.         Xor ebx,eax
  274.         Mov eax,ebx
  275.         Add eax, dword ptr [Esi+8]
  276.         Call Encrypt_value
  277.         Xor edi,eax
  278.         Mov eax,edi
  279.         Add eax, dword ptr [Esi+0Ch]
  280.         Call Encrypt_value
  281.         Xor ebx,eax
  282.         Mov eax,ebx
  283.         Add eax, dword ptr [Esi+10h]
  284.         Call Encrypt_value
  285.         Xor edi,eax
  286.         Mov eax,edi
  287.         Add eax, dword ptr [Esi+14h]
  288.         Call Encrypt_value
  289.         Xor ebx,eax
  290.         Mov eax,ebx
  291.         Add eax, dword ptr [Esi+18h]
  292.         Call Encrypt_value
  293.         Xor edi,eax
  294.         Mov eax,edi
  295.         Add eax, dword ptr [Esi+1ch]
  296.         Call Encrypt_value
  297.         Xor ebx,eax
  298.  
  299.         Mov eax,ebx
  300.         Add eax, dword ptr [Esi]
  301.         Call Encrypt_value
  302.         Xor edi,eax
  303.         Mov eax,edi
  304.         Add eax, dword ptr [Esi+4]
  305.         Call Encrypt_value
  306.         Xor ebx,eax
  307.         Mov eax,ebx
  308.         Add eax, dword ptr [Esi+8]
  309.         Call Encrypt_value
  310.         Xor edi,eax
  311.         Mov eax,edi
  312.         Add eax, dword ptr [Esi+0Ch]
  313.         Call Encrypt_value
  314.         Xor ebx,eax
  315.         Mov eax,ebx
  316.         Add eax, dword ptr [Esi+10h]
  317.         Call Encrypt_value
  318.         Xor edi,eax
  319.         Mov eax,edi
  320.         Add eax, dword ptr [Esi+14h]
  321.         Call Encrypt_value
  322.         Xor ebx,eax
  323.         Mov eax,ebx
  324.         Add eax, dword ptr [Esi+18h]
  325.         Call Encrypt_value
  326.         Xor edi,eax
  327.         Mov eax,edi
  328.         Add eax, dword ptr [Esi+1ch]
  329.         Call Encrypt_value
  330.         Xor ebx,eax
  331.  
  332.         Mov eax,ebx
  333.         Add eax, dword ptr [Esi+1ch]
  334.         Call Encrypt_value
  335.         Xor edi,eax
  336.         Mov eax,edi
  337.         Add eax, dword ptr [Esi+18h]
  338.         Call Encrypt_value
  339.         Xor ebx,eax
  340.         Mov eax,ebx
  341.         Add eax, dword ptr [Esi+14h]
  342.         Call Encrypt_value
  343.         Xor edi,eax
  344.         Mov eax,edi
  345.         Add eax, dword ptr [Esi+10h]
  346.         Call Encrypt_value
  347.         Xor ebx,eax
  348.         Mov eax,ebx
  349.         Add eax, dword ptr [Esi+0ch]
  350.         Call Encrypt_value
  351.         Xor edi,eax
  352.         Mov eax,edi
  353.         Add eax, dword ptr [Esi+8]
  354.         Call Encrypt_value
  355.         Xor ebx,eax
  356.         Mov eax,ebx
  357.         Add eax, dword ptr [Esi+4]
  358.         Call Encrypt_value
  359.         Xor edi,eax
  360.         Mov eax,edi
  361.         Add eax, dword ptr [Esi]
  362.         Call Encrypt_value
  363.         Xor ebx,eax
  364.  
  365.         Mov dword ptr [Buffer_8], edi
  366.         Mov dword ptr [Buffer_8+4], ebx
  367.  
  368.         RET
  369. Encrypt_Buffer_8        ENDP
  370.  
  371. Encrypt_value   PROC
  372.         Push ecx
  373.         Push edx
  374.         Push esi
  375.     lea esi, [Encrypt_Table+20h]
  376.  
  377.         mov ecx, eax
  378.         shr ecx, 18h
  379.         movsx edx, byte ptr [ecx+esi]
  380.  
  381.         mov ecx, eax
  382.         shr ecx, 10h
  383.         And ecx,0FFh
  384.         shl edx, 08
  385.         movsx ecx, byte ptr [ecx+esi+100h]
  386.         or edx, ecx
  387.         mov ecx, eax
  388.         shr ecx, 8
  389.         And ecx,0FFh
  390.         shl edx, 08
  391.         movsx ecx, byte ptr [ecx+esi+200h]
  392.         or edx, ecx
  393.         mov ecx, eax
  394.         And ecx,0FFh
  395.         shl edx, 08
  396.         movsx ecx, byte ptr [ecx+esi+300h]
  397.         or edx, ecx
  398.  
  399.         mov eax, edx
  400.         shl eax, 0Bh
  401.         shr edx, 15h
  402.         or eax, edx
  403.  
  404.         Pop esi
  405.         Pop edx
  406.         Pop ecx
  407.         RET
  408. Encrypt_value   ENDP
  409.  
  410. ;---───────════════════════════════════════════════════════════════───────----
  411. @Heap_loc:
  412.  
  413. Code Ends
  414. End Start
  415.