begin process at 2012 05 30 09:58:07
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Linux

 > 

Réseau & Internet

 > 

Sniffer qui déraille!


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Sniffer qui déraille!

vendredi 19 août 2011 à 18:58:56 | Sniffer qui déraille!

iAure5974

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!

Code C/C++ :
#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <netinet/tcp.h>
#include <unistd.h>
#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;
		}
	} 
}
vendredi 19 août 2011 à 19:16:16 | Re : Sniffer qui déraille!

CptPingu

Administrateur CodeS-SourceS
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
Merci d'utiliser Réponse acceptée si un post répond à votre question
vendredi 19 août 2011 à 20:05:09 | Re : Sniffer qui déraille!

LA_Tupac

Membre Club
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
Code C/C++ :
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
Code C/C++ :
char stampon[]
est en fait un
Code C/C++ :
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
Code C/C++ :
int sniff(char adress)

c'est un char pas une chaine ... bref j'ai du mal a comprendre comment tu as pu le compiler
dimanche 21 août 2011 à 08:45:12 | Re : Sniffer qui déraille!

iAure5974

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
lundi 22 août 2011 à 22:20:31 | Re : Sniffer qui déraille!

LA_Tupac

Membre Club
De rien, clique résolu pour les futures recherches ..


Cette discussion est classée dans : port, include, char, sin, adress


Répondre à ce message

Sujets en rapport avec ce message

Prob avec les sockets [ par Sload ] Bonjour à tous ! Voila mon probleme , j'essaye de develloper un logiciel client/serveur. Je n'en suis qu'au tout début et j'ai déja un probleme lol ! [C] Scanner de port utilise socket version linux [ par firemax ] Salut :) J'ai une erreur de segmentation et je n'est pas la moindre idée d'ou ca peut venir :( Je n'est aucun warning lors de la compilation mais l pb de compilation (prog utilisant un socket) [ par smook ] boujour a tous bon je vais commencer part bien vous detailler ce qui a detailler : j utilise dev c++ 4.9.9.2 et mon ^programme a pour but d ecouter un erreur bind: Address already in use [ par andoid ] Bonjour j'ai mon programme suivant qui marche et je suis en route pour creer mon serveur pour l'instant le client qui se connecte je lui envoi juste l communication serveur c et client java [ par andoid ] Bonjour Je voulais savoir commment on peut faire communiquer un serveur C et un cleint java avec les sockets voici juste un petit serveur qui dit bonj Dictionnaire de traduction [ par JSG19 ] Salut j'ai un dictionnaire a programmer a chaque fois que je programme soit j'ai le premier mot soit le dernier ou toute la liste de traduction donc Problème de compilation [ par shinji63 ] #include #include #include #include #include #include #include #include #include #include #include #include #incl problème de fonction de tirage aléatoire en poker [ par moonlight2509 ] Salut, étant en débutant en langage c mon problème paraît peut-être très bête!! Voilà j'ai un problème d'argument ou de type de fonction dans la fonct reception et envoi d'une trame sous rs232 [ par fl2010 ] bonjour je suis entrain d'ecrire un programme pour faire la communication entre un PC et un regulateur eurotherm à l'aide du rs232. j'ai fait un progr Erreur de Segmentation sur les sockets [ par andoid ] Bonjour Je blogue sur mon code depuis 2h j'ai une erreur de segmentation à la reception du coté client au faite j'envoie un tableau 2d (d=dimension) l


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,250 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales