Exploit
Administrator
 Din: I'm from everywhere..
Inregistrat: acum 18 ani
Postari: 600
|
|
Un client ftp. Are capacitatea doar de a incarca si descarca fisiere pe un server FTP. Se foloseste numai din CMD cu comanda: ft.exe p 127.0.0.1 21 user parola fisier fisier2 Unde ft.exe este executabilul rezultat dupa compilare. COD: =============
/* Simplu client FTP, doar incarcare && descarcare. */
#define WIN32_LEAN_AND_MEAN #include <stdio.h> #include <tchar.h> #include <conio.h> #include <ctype.h> #include <direct.h> #include <iostream> #include <stdlib.h> #include <string.h> #include <time.h> //#include <winable.h> #include <windows.h> #include <windowsx.h> #include <wininet.h> #include <winreg.h> #include <winsock2.h> #include <winuser.h> #pragma comment(lib, "Advapi32" #pragma comment(lib, "Kernel32" #pragma comment(lib, "Ws2_32" #pragma comment(lib, "Wininet" #ifndef EROARE #define EROARE (-1) #endif #ifndef FALS #define FALS 0 #endif #ifndef ADEVARAT #define ADEVARAT 1 #endif using namespace std;
void ajutor(char exe[10]) { /* Functia ajutor..., afiseaza comenzile de utiliazare */ printf("n ---------------------------------------------------------------------n [UTILIZARE]:nn" ; char linie[70]; /* linie va deveni executabilul + [comanda] [IP... bla bla */ strcpy_s(linie, exe); strcat_s(linie," [comanda] [IP] [port] [user] [passw] [fisier1] [fisier2]" ; printf(linie); printf("nn Primul parametru este comanda ftp, ele sunt:n g -descarca fisier (GET).n p -incarca fisier (PUT).nn Fsierele sunt:n fisier1 -Fisier local.n fisier2 -Fisier pe server.n Copyright 2006-2007 Win32_Win32 Corp.n ---------------------------------------------------------------------n " ; exit(0); }
/* Functia main, cea principala */ void main(int argc, char *argv[]) { /* int main(int argc, char *argv[]): /* argc si argv permit comenzi CommandLine peste program /* de ex: (prog.exe -a -b) /* argc este numarul de parametrii cu care se executa programul /* adica daca nu i se da nici un parametru inseamna ca /* argc este argc[1], iar daca se va da un parametru va fi /* argc[2], si asa mai departe. /* argv este chiar parametrul, unde argv[0], este pathul progra- /* mului, adica daca se va da printf("%s", argv[0]); va fi /* afisat ceva de genu: c:directorprog.exe sau prog.exe. /* argv[1] va fi primul parametru dat, daca afisam argv[1] /* cu printf(); va fi parametrl dat. */
char prm;
/* se vor pune urmatoarele conditii: */ if(argc >8) { /* daca parametrii dati sunt mai multi de 7 atunci va executa /* urmatoarele intstructiuni. */ printf("n>>> PREA MULTI PARAMETRII !!" ; ajutor(argv[0]); }
if(argc < 8) /* aici previne un bug, daca param sunt < 8 */ { printf("n<<< PARAMETRII INSUFICIENTI !!" ; ajutor(argv[0]); } if(argc == 8) prm = *argv[1]; /* prm va deveni parametrul cu care a fost executat */
/* converteste port din char in int */ int port; char port1[10]; strcpy_s(port1, argv[3]); port=atoi(port1);
/* Aici va incepe deschiderea conexiunii Internet */ LPCSTR ***="Conexiune Ftp"; /* un flag */ HINTERNET hSesiune; /* identificatorul pentru InternetOpen (handle) */ HINTERNET hCon; /* identificatorul pentru InternetConnect */ hSesiune = InternetOpenA(***, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, NULL); hCon = InternetConnectA(hSesiune, argv[2], port, argv[4], argv[5], INTERNET_SERVICE_FTP, NULL, NULL);
DWORD dwe = GetLastError(); /* declaratie GetLastError */ /* FtpPutFile si FtpGetFile returneaza 1 daca este ok, /* si zero daca exista eroare */
/* Aici se alege parametrul cu care a fost executat */ switch(prm) { case 'g': /* get, descarca fisiere */ /* cazul in care parametrul g este cerut va incerca sa descarce fisierul de pe server */ if(FtpGetFileA(hCon, argv[7], argv[6], NULL, NULL, FTP_TRANSFER_TYPE_BINARY, NULL)==1) printf("Comanda: OK" ; /* daca va da eroare */ else printf("Eroare: %d", dwe); break; /* intrerupe bucla */
case 'p': /* put, incarca fisiere */ if(FtpPutFileA(hCon, argv[6], argv[7], FTP_TRANSFER_TYPE_BINARY, NULL)==1) printf("Comanda: OK" ; else printf("Eroare: %d", dwe); break; /* in caz ca parametrii sunt incorecti se va face /* apel functiei ajutor(); */ default: ajutor(argv[0]); } /* se vor inchide cele doua Handle */ InternetCloseHandle(hSesiune); InternetCloseHandle(hCon); exit(0); /* iesire */ }
=======
_______________________________________ ...:::Only God Can Judge Me:::...
|
|