Sniffer qui déraille!

iAure5974 Messages postés 5 Date d'inscription lundi 18 juillet 2011 Statut Membre Dernière intervention 26 mars 2012 - 19 août 2011 à 18:58
cs_LA_Tupac Messages postés 305 Date d'inscription jeudi 29 avril 2004 Statut Membre Dernière intervention 18 janvier 2012 - 22 août 2011 à 22:20
Bonjour je débute actuellement dans la programmation réseau et je voudrais réaliser un petit sniffer wi-fi. (rien de comparable à tcpdump par exemple ). Bref je voulais juste faire vérifier mon code à de vrais programmeur car quand je le lance, il me renvoie un nombre infini de "(null)"

Merci beaucoup de vos futures réponses et bonne soirée à tous!

#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <netinet/tcp.h>
#include 
#include <netinet/in.h>
#include <netinet/ip.h>

int sniff(char adress) {

char adress[15];
int port = 21;
const int port2 = 21;
struct sockaddr_in sin;
char fichier[50];

struct buffer {
char stampon[];
void *sbuf = &stampon;

char rtampon[];
void *rbuf = &rtampon;  
};

int s = socket(AF_INET,SOCK_RAW,IPPROTO_TCP);

system("netstat -rn");

printf("IP (toaddr = all IP's) : ");
scanf("%s", adress);

sin.sin_family = AF_INET;
sin.sin_addr.s_addr = inet_addr(adress);
sin.sin_port = htons(port);


while (1) {
connect(s, adress, 4);
send(s, *buf, 4096, 0);
recv(s, *buf, 4096, 0);
printf("%s\n", *buf);
port++;

if (port = 65536) {
port = port2;
}
} 
}

4 réponses

cptpingu Messages postés 3836 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 11 février 2023 124
19 août 2011 à 19:16
Bonjour.

Je n'ai pas lancé ton programme. Mais en revanche certains lignes me font tilter:
- if (port 65536) > if (port == 65536)
- system("netstat -rn"); System ne récupère pas la valeur de retour potentielle, ni le code d'erreur. Utilise plutôt execve (avec un fork).
- D'où sort "buf" ? Je ne le vois déclarer nul part. Évite au maximum les variables globales.
- buf ou *buf ? Si buf est un pointeur (ou un tableau c'est pareil) alors c'est buf, et non *buf qu'il faut utiliser.

Conseil: Compile avec les flags ! (gcc -W -Wall -ansi -pedantic -g)

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
0
cs_LA_Tupac Messages postés 305 Date d'inscription jeudi 29 avril 2004 Statut Membre Dernière intervention 18 janvier 2012 1
19 août 2011 à 20:05
Tu commet aussi une ambiguïté de variables avec adress en paramètre et en array ligne 1.
Bizard que gcc ne gueule pas as-tu activé des options permissives de gcc ? Normalement "adress[15] shadows a parameter".
Pareil pour
void *sbuf = &stampon;

Génère une erreur.. c'est vrai que ça choque un peut. Tu ne donne pas comme ça des valeurs dans une class (la struct en est une). Si tu veux initialiser tes variables passe par le constructeur et déclare le tout en une class et de préférence pas dans une autre fonction .
En plus
char stampon[]
est en fait un
char *stampon
donc pense a ne pas l'utiliser comme une chaîne ça peut être dangereux

Comme l'a souligné CptPingu, if(port 65154); C'est une erreur. Là il donne la valeur 65215 à port et vérifie si ça de fait pas 0 (forcément que non). L'opérateur de comparaison c'est .
Ca fait déjà un packet de problèmes et tu devrais vérifier les retours de connect, send, recv .. (pas printf ).
Et
int sniff(char adress)

c'est un char pas une chaine ... bref j'ai du mal a comprendre comment tu as pu le compiler
0
iAure5974 Messages postés 5 Date d'inscription lundi 18 juillet 2011 Statut Membre Dernière intervention 26 mars 2012
21 août 2011 à 08:45
Merci beaucoup les gars, grâce à vous j'ai pu corrigé un certain nombre d'erreurs dans ma fonction (pas la totalité mais une grande partie ) . En fait pour tout vous dire, je suis sous Mac OS X et j'utilise Xcode pour compiler mes progs et je sais pas pourquoi, tout d'un coup j'ai beau faire des fautes et des fautes mais il m'indique toujours que la compilation est un succès, mais de toutes façon je n'ai plus ce problème

Merci encore et bonne journée
0
cs_LA_Tupac Messages postés 305 Date d'inscription jeudi 29 avril 2004 Statut Membre Dernière intervention 18 janvier 2012 1
22 août 2011 à 22:20
De rien, clique résolu pour les futures recherches ..
0
Rejoignez-nous