home *** CD-ROM | disk | FTP | other *** search
- Code Segment Byte Public
- Assume Ds:Code,Cs:Code
- Org 100h
- P386
-
- Start: jmp Main
- Logo DB " ───═══════════════════════════[ CuteFTP 2.x ] ═════════════════════════───",10,13
- DB " [■] CuteFTP ver2.x Key-Maker By The+Q [■] ",10,13
- DB " ───═══════════════════════════[ The+Q ] ═════════════════════════───",10,13,10,13,'$'
- NewLine DB 10,13,10,13,'$'
- GetMsg DB " [?] Please Enter Name : $"
- Stat1 DB " [■] Creating new file..",10,13,'$'
- Stat2 DB " [■] Encrypting new encryption-table head..",10,13,'$'
- Stat3 DB " [■] Calculating Name CRC..",10,13,'$'
- Stat4 DB " [■] Encrypting Name CRC..",10,13,'$'
- Stat5 DB " [■] Encrypting Name..",10,13,'$'
- Stat6 DB " [Ω] CuteFTP key file ready. Copy it to CuteFTP main directory.",10,13
- DB " EnJoY!",10,13,'$'
-
-
- FileName DB "CUTEFTP.KEY",0
- hfile DW 0
- Count DB 0
- NewHeadSTR DB 'Cracked By The+Q Phrozen Crew 98'
- Encrypt_Table DB 071h,005h,000h,000h,055h,02Eh,000h,000h,077h,072h,000h,000h,06Bh,06Ah,000h,000
- DB 07Fh,073h,000h,000h,0ABh,00Bh,000h,000h,046h,056h,000h,000h,0BDh,074h,000h,000
- DB 0EFh,0E1h,0E8h,0EEh,0E6h,0EBh,0E3h,0E4h,0E9h,0E7h,0E2h,0EDh,0ECh,0E0h,0E5h,0EAh
- DB 04Fh,041h,048h,04Eh,046h,04Bh,043h,044h,049h,047h,042h,04Dh,04Ch,040h,045h,04Ah
- DB 0DFh,0D1h,0D8h,0DEh,0D6h,0DBh,0D3h,0D4h,0D9h,0D7h,0D2h,0DDh,0DCh,0D0h,0D5h,0DAh
- DB 01Fh,011h,018h,01Eh,016h,01Bh,013h,014h,019h,017h,012h,01Dh,01Ch,010h,015h,01Ah
- DB 02Fh,021h,028h,02Eh,026h,02Bh,023h,024h,029h,027h,022h,02Dh,02Ch,020h,025h,02Ah
- DB 0FFh,0F1h,0F8h,0FEh,0F6h,0FBh,0F3h,0F4h,0F9h,0F7h,0F2h,0FDh,0FCh,0F0h,0F5h,0FAh
- DB 0BFh,0B1h,0B8h,0BEh,0B6h,0BBh,0B3h,0B4h,0B9h,0B7h,0B2h,0BDh,0BCh,0B0h,0B5h,0BAh
- DB 08Fh,081h,088h,08Eh,086h,08Bh,083h,084h,089h,087h,082h,08Dh,08Ch,080h,085h,08Ah
- DB 03Fh,031h,038h,03Eh,036h,03Bh,033h,034h,039h,037h,032h,03Dh,03Ch,030h,035h,03Ah
- DB 0AFh,0A1h,0A8h,0AEh,0A6h,0ABh,0A3h,0A4h,0A9h,0A7h,0A2h,0ADh,0ACh,0A0h,0A5h,0AAh
- DB 06Fh,061h,068h,06Eh,066h,06Bh,063h,064h,069h,067h,062h,06Dh,06Ch,060h,065h,06Ah
- DB 0CFh,0C1h,0C8h,0CEh,0C6h,0CBh,0C3h,0C4h,0C9h,0C7h,0C2h,0CDh,0CCh,0C0h,0C5h,0CAh
- DB 05Fh,051h,058h,05Eh,056h,05Bh,053h,054h,059h,057h,052h,05Dh,05Ch,050h,055h,05Ah
- DB 09Fh,091h,098h,09Eh,096h,09Bh,093h,094h,099h,097h,092h,09Dh,09Ch,090h,095h,09Ah
- DB 00Fh,001h,008h,00Eh,006h,00Bh,003h,004h,009h,007h,002h,00Dh,00Ch,000h,005h,00Ah
- DB 07Fh,071h,078h,07Eh,076h,07Bh,073h,074h,079h,077h,072h,07Dh,07Ch,070h,075h,07Ah
- DB 0A7h,0ADh,0AEh,0A3h,0A0h,0A6h,0A9h,0AAh,0A1h,0A2h,0A8h,0A5h,0ABh,0ACh,0A4h,0AFh
- DB 007h,00Dh,00Eh,003h,000h,006h,009h,00Ah,001h,002h,008h,005h,00Bh,00Ch,004h,00Fh
- DB 097h,09Dh,09Eh,093h,090h,096h,099h,09Ah,091h,092h,098h,095h,09Bh,09Ch,094h,09Fh
- DB 0E7h,0EDh,0EEh,0E3h,0E0h,0E6h,0E9h,0EAh,0E1h,0E2h,0E8h,0E5h,0EBh,0ECh,0E4h,0EFh
- DB 067h,06Dh,06Eh,063h,060h,066h,069h,06Ah,061h,062h,068h,065h,06Bh,06Ch,064h,06Fh
- DB 037h,03Dh,03Eh,033h,030h,036h,039h,03Ah,031h,032h,038h,035h,03Bh,03Ch,034h,03Fh
- DB 0F7h,0FDh,0FEh,0F3h,0F0h,0F6h,0F9h,0FAh,0F1h,0F2h,0F8h,0F5h,0FBh,0FCh,0F4h,0FFh
- DB 057h,05Dh,05Eh,053h,050h,056h,059h,05Ah,051h,052h,058h,055h,05Bh,05Ch,054h,05Fh
- DB 017h,01Dh,01Eh,013h,010h,016h,019h,01Ah,011h,012h,018h,015h,01Bh,01Ch,014h,01Fh
- DB 0D7h,0DDh,0DEh,0D3h,0D0h,0D6h,0D9h,0DAh,0D1h,0D2h,0D8h,0D5h,0DBh,0DCh,0D4h,0DFh
- DB 0C7h,0CDh,0CEh,0C3h,0C0h,0C6h,0C9h,0CAh,0C1h,0C2h,0C8h,0C5h,0CBh,0CCh,0C4h,0CFh
- DB 077h,07Dh,07Eh,073h,070h,076h,079h,07Ah,071h,072h,078h,075h,07Bh,07Ch,074h,07Fh
- DB 0B7h,0BDh,0BEh,0B3h,0B0h,0B6h,0B9h,0BAh,0B1h,0B2h,0B8h,0B5h,0BBh,0BCh,0B4h,0BFh
- DB 047h,04Dh,04Eh,043h,040h,046h,049h,04Ah,041h,042h,048h,045h,04Bh,04Ch,044h,04Fh
- DB 027h,02Dh,02Eh,023h,020h,026h,029h,02Ah,021h,022h,028h,025h,02Bh,02Ch,024h,02Fh
- DB 087h,08Dh,08Eh,083h,080h,086h,089h,08Ah,081h,082h,088h,085h,08Bh,08Ch,084h,08Fh
- DB 02Ch,021h,02Ah,02Fh,029h,022h,026h,028h,020h,02Dh,023h,024h,02Eh,027h,025h,02Bh
- DB 0CCh,0C1h,0CAh,0CFh,0C9h,0C2h,0C6h,0C8h,0C0h,0CDh,0C3h,0C4h,0CEh,0C7h,0C5h,0CBh
- DB 04Ch,041h,04Ah,04Fh,049h,042h,046h,048h,040h,04Dh,043h,044h,04Eh,047h,045h,04Bh
- DB 01Ch,011h,01Ah,01Fh,019h,012h,016h,018h,010h,01Dh,013h,014h,01Eh,017h,015h,01Bh
- DB 07Ch,071h,07Ah,07Fh,079h,072h,076h,078h,070h,07Dh,073h,074h,07Eh,077h,075h,07Bh
- DB 0ACh,0A1h,0AAh,0AFh,0A9h,0A2h,0A6h,0A8h,0A0h,0ADh,0A3h,0A4h,0AEh,0A7h,0A5h,0ABh
- DB 0BCh,0B1h,0BAh,0BFh,0B9h,0B2h,0B6h,0B8h,0B0h,0BDh,0B3h,0B4h,0BEh,0B7h,0B5h,0BBh
- DB 06Ch,061h,06Ah,06Fh,069h,062h,066h,068h,060h,06Dh,063h,064h,06Eh,067h,065h,06Bh
- DB 08Ch,081h,08Ah,08Fh,089h,082h,086h,088h,080h,08Dh,083h,084h,08Eh,087h,085h,08Bh
- DB 05Ch,051h,05Ah,05Fh,059h,052h,056h,058h,050h,05Dh,053h,054h,05Eh,057h,055h,05Bh
- DB 03Ch,031h,03Ah,03Fh,039h,032h,036h,038h,030h,03Dh,033h,034h,03Eh,037h,035h,03Bh
- DB 0FCh,0F1h,0FAh,0FFh,0F9h,0F2h,0F6h,0F8h,0F0h,0FDh,0F3h,0F4h,0FEh,0F7h,0F5h,0FBh
- DB 0DCh,0D1h,0DAh,0DFh,0D9h,0D2h,0D6h,0D8h,0D0h,0DDh,0D3h,0D4h,0DEh,0D7h,0D5h,0DBh
- DB 00Ch,001h,00Ah,00Fh,009h,002h,006h,008h,000h,00Dh,003h,004h,00Eh,007h,005h,00Bh
- DB 0ECh,0E1h,0EAh,0EFh,0E9h,0E2h,0E6h,0E8h,0E0h,0EDh,0E3h,0E4h,0EEh,0E7h,0E5h,0EBh
- DB 09Ch,091h,09Ah,09Fh,099h,092h,096h,098h,090h,09Dh,093h,094h,09Eh,097h,095h,09Bh
- DB 04Dh,042h,048h,044h,046h,04Fh,04Bh,041h,04Ah,049h,043h,04Eh,045h,040h,04Ch,047h
- DB 0BDh,0B2h,0B8h,0B4h,0B6h,0BFh,0BBh,0B1h,0BAh,0B9h,0B3h,0BEh,0B5h,0B0h,0BCh,0B7h
- DB 02Dh,022h,028h,024h,026h,02Fh,02Bh,021h,02Ah,029h,023h,02Eh,025h,020h,02Ch,027h
- DB 0EDh,0E2h,0E8h,0E4h,0E6h,0EFh,0EBh,0E1h,0EAh,0E9h,0E3h,0EEh,0E5h,0E0h,0ECh,0E7h
- DB 0FDh,0F2h,0F8h,0F4h,0F6h,0FFh,0FBh,0F1h,0FAh,0F9h,0F3h,0FEh,0F5h,0F0h,0FCh,0F7h
- DB 00Dh,002h,008h,004h,006h,00Fh,00Bh,001h,00Ah,009h,003h,00Eh,005h,000h,00Ch,007h
- DB 08Dh,082h,088h,084h,086h,08Fh,08Bh,081h,08Ah,089h,083h,08Eh,085h,080h,08Ch,087h
- DB 0DDh,0D2h,0D8h,0D4h,0D6h,0DFh,0DBh,0D1h,0DAh,0D9h,0D3h,0DEh,0D5h,0D0h,0DCh,0D7h
- DB 03Dh,032h,038h,034h,036h,03Fh,03Bh,031h,03Ah,039h,033h,03Eh,035h,030h,03Ch,037h
- DB 0CDh,0C2h,0C8h,0C4h,0C6h,0CFh,0CBh,0C1h,0CAh,0C9h,0C3h,0CEh,0C5h,0C0h,0CCh,0C7h
- DB 09Dh,092h,098h,094h,096h,09Fh,09Bh,091h,09Ah,099h,093h,09Eh,095h,090h,09Ch,097h
- DB 07Dh,072h,078h,074h,076h,07Fh,07Bh,071h,07Ah,079h,073h,07Eh,075h,070h,07Ch,077h
- DB 05Dh,052h,058h,054h,056h,05Fh,05Bh,051h,05Ah,059h,053h,05Eh,055h,050h,05Ch,057h
- DB 0ADh,0A2h,0A8h,0A4h,0A6h,0AFh,0ABh,0A1h,0AAh,0A9h,0A3h,0AEh,0A5h,0A0h,0ACh,0A7h
- DB 06Dh,062h,068h,064h,066h,06Fh,06Bh,061h,06Ah,069h,063h,06Eh,065h,060h,06Ch,067h
- DB 01Dh,012h,018h,014h,016h,01Fh,01Bh,011h,01Ah,019h,013h,01Eh,015h,010h,01Ch,017h
- Buffer_8 DB 'Cracked '
- ;---───────════════════════════════════════════════════════════════───────----
- Main: lea dx,Logo
- Call PrintMSG
- lea dx,GetMsg
- Call PrintMSG
- lea edi,@heap_loc
- Mov ecx,100h
- xor al,al
- rep stosb
-
- Mov byte ptr [@heap_loc],0D0h
- lea dx,@heap_loc
- mov ah,0ah
- int 21h
-
- lea dx,NewLine
- Call PrintMSG
- lea dx,Stat1
- Call PrintMSG
- Mov ah,3Ch
- Xor cx,cx
- lea dx,FileName
- int 21h
- Mov hfile,ax
-
- lea dx,Stat2
- Call PrintMSG
- Mov count,0
- @Enc_Head:
- lea esi,NewHeadSTR
- Xor eax,eax
- Mov al,Count
- Mov cl,8
- Mul cl
- Add esi,eax
-
- lea edi,Buffer_8
- Mov ecx,8
- repnz movsb
- Call Encrypt_Buffer_8
- Mov ah,40h
- Mov bx,hfile
- mov cx,8
- lea dx,Buffer_8
- Int 21h
-
- Inc Count
- Cmp byte ptr Count,4
- Jnz @Enc_Head
-
- lea esi,NewHeadSTR
- lea edi, Encrypt_Table
- Mov ecx,20h
- repnz movsb
-
- lea dx,Stat3
- Call PrintMSG
- lea esi,[@heap_loc+2]
- lea edi,@heap_loc
- movzx ecx,byte ptr [@heap_loc+1]
- Push ecx
- repnz movsb
-
- xor al,al
- Stosb
- Pop eax
- Mov ecx,0D7h
- Sub ecx,eax
- mov al,20h
- repnz stosb
-
- lea edi,@heap_loc
- Xor edx,edx
- Xor eax,eax
- @Calc_CRC:
- Movsx ecx, byte ptr [edi+eax]
- Add edx,ecx
- Inc eax
- Cmp eax,50h
- Jb @Calc_CRC
- Mov ecx,edx
- lea dx,Stat4
- Call PrintMSG
- Mov dword ptr Buffer_8, ecx
- Mov dword ptr [Buffer_8+4],0
-
- Call Encrypt_Buffer_8
- Mov ah,40h
- Mov bx,hfile
- mov cx,8
- lea dx,Buffer_8
- Int 21h
-
- lea dx,Stat5
- Call PrintMSG
- Mov count,0
- @Enc_name:
- lea esi,@heap_loc
- Xor eax,eax
- Mov al,Count
- Mov cl,8
- Mul cl
- Add esi,eax
-
- lea edi,Buffer_8
- Mov ecx,8
- repnz movsb
- Call Encrypt_Buffer_8
- Mov ah,40h
- Mov bx,hfile
- mov cx,8
- lea dx,Buffer_8
- Int 21h
-
- Inc Count
- Cmp byte ptr Count,1Bh
- Jnz @Enc_name
-
- mov ah,3eh
- mov bx,hfile
- int 21h
-
- lea dx,Stat6
- Call PrintMSG
- mov ax,4c00h
- int 21h
- ;---───────════════════════════════════════════════════════════════───────----
- ; PROCEDUREs
- PrintMSG PROC
- Push ax
- mov ah,9
- Int 21h
- Pop ax
- RET
- PrintMSG ENDP
-
- Encrypt_Buffer_8 PROC
- lea esi, Encrypt_Table
- Mov ebx, dword ptr [Buffer_8]
- Mov edi, dword ptr [Buffer_8+4]
-
- Mov eax,ebx
- Add eax, dword ptr [Esi]
- Call Encrypt_value
- Xor edi,eax
- Mov eax,edi
- Add eax, dword ptr [Esi+4]
- Call Encrypt_value
- Xor ebx,eax
- Mov eax,ebx
- Add eax, dword ptr [Esi+8]
- Call Encrypt_value
- Xor edi,eax
- Mov eax,edi
- Add eax, dword ptr [Esi+0Ch]
- Call Encrypt_value
- Xor ebx,eax
- Mov eax,ebx
- Add eax, dword ptr [Esi+10h]
- Call Encrypt_value
- Xor edi,eax
- Mov eax,edi
- Add eax, dword ptr [Esi+14h]
- Call Encrypt_value
- Xor ebx,eax
- Mov eax,ebx
- Add eax, dword ptr [Esi+18h]
- Call Encrypt_value
- Xor edi,eax
- Mov eax,edi
- Add eax, dword ptr [Esi+1ch]
- Call Encrypt_value
- Xor ebx,eax
-
- Mov eax,ebx
- Add eax, dword ptr [Esi]
- Call Encrypt_value
- Xor edi,eax
- Mov eax,edi
- Add eax, dword ptr [Esi+4]
- Call Encrypt_value
- Xor ebx,eax
- Mov eax,ebx
- Add eax, dword ptr [Esi+8]
- Call Encrypt_value
- Xor edi,eax
- Mov eax,edi
- Add eax, dword ptr [Esi+0Ch]
- Call Encrypt_value
- Xor ebx,eax
- Mov eax,ebx
- Add eax, dword ptr [Esi+10h]
- Call Encrypt_value
- Xor edi,eax
- Mov eax,edi
- Add eax, dword ptr [Esi+14h]
- Call Encrypt_value
- Xor ebx,eax
- Mov eax,ebx
- Add eax, dword ptr [Esi+18h]
- Call Encrypt_value
- Xor edi,eax
- Mov eax,edi
- Add eax, dword ptr [Esi+1ch]
- Call Encrypt_value
- Xor ebx,eax
-
- Mov eax,ebx
- Add eax, dword ptr [Esi]
- Call Encrypt_value
- Xor edi,eax
- Mov eax,edi
- Add eax, dword ptr [Esi+4]
- Call Encrypt_value
- Xor ebx,eax
- Mov eax,ebx
- Add eax, dword ptr [Esi+8]
- Call Encrypt_value
- Xor edi,eax
- Mov eax,edi
- Add eax, dword ptr [Esi+0Ch]
- Call Encrypt_value
- Xor ebx,eax
- Mov eax,ebx
- Add eax, dword ptr [Esi+10h]
- Call Encrypt_value
- Xor edi,eax
- Mov eax,edi
- Add eax, dword ptr [Esi+14h]
- Call Encrypt_value
- Xor ebx,eax
- Mov eax,ebx
- Add eax, dword ptr [Esi+18h]
- Call Encrypt_value
- Xor edi,eax
- Mov eax,edi
- Add eax, dword ptr [Esi+1ch]
- Call Encrypt_value
- Xor ebx,eax
-
- Mov eax,ebx
- Add eax, dword ptr [Esi+1ch]
- Call Encrypt_value
- Xor edi,eax
- Mov eax,edi
- Add eax, dword ptr [Esi+18h]
- Call Encrypt_value
- Xor ebx,eax
- Mov eax,ebx
- Add eax, dword ptr [Esi+14h]
- Call Encrypt_value
- Xor edi,eax
- Mov eax,edi
- Add eax, dword ptr [Esi+10h]
- Call Encrypt_value
- Xor ebx,eax
- Mov eax,ebx
- Add eax, dword ptr [Esi+0ch]
- Call Encrypt_value
- Xor edi,eax
- Mov eax,edi
- Add eax, dword ptr [Esi+8]
- Call Encrypt_value
- Xor ebx,eax
- Mov eax,ebx
- Add eax, dword ptr [Esi+4]
- Call Encrypt_value
- Xor edi,eax
- Mov eax,edi
- Add eax, dword ptr [Esi]
- Call Encrypt_value
- Xor ebx,eax
-
- Mov dword ptr [Buffer_8], edi
- Mov dword ptr [Buffer_8+4], ebx
-
- RET
- Encrypt_Buffer_8 ENDP
-
- Encrypt_value PROC
- Push ecx
- Push edx
- Push esi
- lea esi, [Encrypt_Table+20h]
-
- mov ecx, eax
- shr ecx, 18h
- movsx edx, byte ptr [ecx+esi]
-
- mov ecx, eax
- shr ecx, 10h
- And ecx,0FFh
- shl edx, 08
- movsx ecx, byte ptr [ecx+esi+100h]
- or edx, ecx
- mov ecx, eax
- shr ecx, 8
- And ecx,0FFh
- shl edx, 08
- movsx ecx, byte ptr [ecx+esi+200h]
- or edx, ecx
- mov ecx, eax
- And ecx,0FFh
- shl edx, 08
- movsx ecx, byte ptr [ecx+esi+300h]
- or edx, ecx
-
- mov eax, edx
- shl eax, 0Bh
- shr edx, 15h
- or eax, edx
-
- Pop esi
- Pop edx
- Pop ecx
- RET
- Encrypt_value ENDP
-
- ;---───────════════════════════════════════════════════════════════───────----
- @Heap_loc:
-
- Code Ends
- End Start
-