[C] Forger les paquets HELP

Forger les paquets HELP [C] - C - Programmation

Marsh Posté le 30-05-2004 à 22:43:51    

bonjour à tous, j essaye de forger un paquet ICMP mais le compilateur me renvoir de drole d erreur.
 
Je suis sous Windows Xp et j utilise Cygwin , ca m 'evite toutes les formalités WSA ...
 
voici la fonction très simple:
 

Code :
  1. char *fonction(char *A, char *B)
  2. {
  3.       struct iphdr *ip;
  4.       struct icmphdr *icmp;
  5.       char *paquet;
  6. /*ici*/  paquet = malloc(sizeof(struct iphdr) + sizeof(struct icmphdr));
  7.    
  8. }


 
et voici les erreurs que me renvoie gcc:
 
 
 
 
invalid application of sizeof to a incomplete type pour le 1er ici
 
et
 
deferencing pointer to an incomplete type pour le 2eme ici


Message édité par joelan le 30-05-2004 à 22:58:49
Reply

Marsh Posté le 30-05-2004 à 22:43:51   

Reply

Marsh Posté le 30-05-2004 à 22:46:57    

utilise les balises de code du forum pour que ca soit lisible
 
merci


---------------
http://www.boincstats.com/signature/user_664861.gif
Reply

Marsh Posté le 30-05-2004 à 22:47:05    

Code :
  1. ip->saddr = inet_addr(victim)


 
C'est pour faire quoi ton programme ? [:printf]
 
Quand on ne sait pas programmer, on ne joue pas au hacker et on emmerde pas les admins qui ont autre chose à foutre que gérer des floods causés par des script kiddies à la con qui s'amusent.


Message édité par printf le 30-05-2004 à 22:48:42

---------------
Un matin je me lèverai et il fera beau.
Reply

Marsh Posté le 30-05-2004 à 22:49:36    

C vraiment dans un usage pedagogique.


Message édité par joelan le 30-05-2004 à 22:50:46
Reply

Marsh Posté le 30-05-2004 à 22:50:34    

joelan a écrit :

Bah c un ping avec l'adresse source modifié


 
Et ça sert à quoi ? [:itm]


---------------
Un matin je me lèverai et il fera beau.
Reply

Marsh Posté le 30-05-2004 à 22:51:15    

C clean, tu dois te tromper de personne


Message édité par joelan le 30-05-2004 à 22:53:15
Reply

Marsh Posté le 30-05-2004 à 22:54:15    

joelan a écrit :

bah j px edité


 
Tu nous prends vraiment pour des cons [:al zheimer]
Que ta variable s'appelle "toto" ou "babar", ça reste un floodeur, un outil de minable pour emmerder le monde et se branler en pensant faire partie de l'31337...


---------------
Un matin je me lèverai et il fera beau.
Reply

Marsh Posté le 30-05-2004 à 22:55:12    

forger les paquets c un crime ?

Reply

Marsh Posté le 30-05-2004 à 22:56:59    

joelan a écrit :

forger les paquets c un crime ?


 
Si tu balance 50.000 ICMP ECHO REQUEST par seconde avec une adresse source forgée, OUI :sarcastic:


---------------
Un matin je me lèverai et il fera beau.
Reply

Marsh Posté le 30-05-2004 à 22:59:22    

Bah voila le code est plus la mais ma question reste toujours valable.

Reply

Marsh Posté le 30-05-2004 à 22:59:22   

Reply

Marsh Posté le 30-05-2004 à 23:01:46    

joelan a écrit :

Bah voila le code est plus la mais ma question reste toujours valable.


 
et on te répond
 

printf a écrit :

Tu nous prends vraiment pour des cons [:al zheimer]
Que ta variable s'appelle "toto" ou "babar", ça reste un floodeur, un outil de minable pour emmerder le monde et se branler en pensant faire partie de l'31337...


---------------
http://www.boincstats.com/signature/user_664861.gif
Reply

Marsh Posté le 30-05-2004 à 23:01:54    

il te manque les définitons de ses struct, voilà tout

Reply

Marsh Posté le 30-05-2004 à 23:04:21    

Taz a écrit :

il te manque les définitons de ses struct, voilà tout


 
Je croyais qu elle etait définis dans les bibliothèques.  
Ca m'etonne parce que je vois d'autre programme qui ne definissent pas ces structures

Reply

Marsh Posté le 30-05-2004 à 23:10:34    

ben justement, il te manque des #include :p

Reply

Marsh Posté le 30-05-2004 à 23:21:33    

bah j ve include tout ski ya ds les bibliotheques netinet.
 
Sinon j ai redefini selon ta première id et ca compile. Reste à voir si ca fonctionne :lol:

Reply

Marsh Posté le 30-05-2004 à 23:27:28    

je t'ai jamais dit de définir quoi ce que soit.
 
il te manque des #include .|
trouve les

Reply

Marsh Posté le 30-05-2004 à 23:31:22    

En fet netinet/ip.h etait la mais le fichier etait vide.
 
J ai trouvé une blibliotheques mais les numeros de lignes font chier. Ya moyen des les virer ?
 
http://sos30.cs.columbia.edu/lxr/f [...] /ip_icmp.h


Message édité par joelan le 30-05-2004 à 23:47:01
Reply

Marsh Posté le 31-05-2004 à 09:13:01    

T'es un sacré guignol toi hein?
Il suffit de faire une recherche google avec comme mot-clef le symbole qui sert a prévenir la multi-inclusion...
 

Code :
  1. 37 #ifndef _NETINET_IP_ICMP_H_
  2. 38 #define _NETINET_IP_ICMP_H_


 
Et miracle... on trouve :
http://ftp.scarlet.be/pub/openbsd/ [...] /ip_icmp.h

Reply

Marsh Posté le 31-05-2004 à 09:17:08    

Maintenant t'es grand, tu sais que t'es responsable de ce que tu vas faire avec ton espece de Ping of Death... ( bon, je sais, c'est pas ca un Ping of Death )
Serait-il indiscret de te demander ce que tu appelles un "usage pédagogique"?

Reply

Marsh Posté le 31-05-2004 à 14:11:49    

Desolé pour le temps de retard
 

Citation :

mot-clef le symbole qui sert a prévenir la multi-inclusion

Première fois que j'entends parler de ça.
 

Citation :

Serait-il indiscret de te demander ce que tu appelles un "usage pédagogique"?


 
C simple : je forge un paquet ICMP ca marche, si ca marche je passe à autre chose (Connection TCP / IP) sinon je reste la ou je suis.
Mon objectif étant de comprendre la forge de paquet le mieux possible.
 
Merci


Message édité par joelan le 31-05-2004 à 14:15:23
Reply

Marsh Posté le 31-05-2004 à 14:50:52    

joelan a écrit :


Citation :

mot-clef le symbole qui sert a prévenir la multi-inclusion

Première fois que j'entends parler de ça.


 
Ouais ben ca montre bien qu'une fois que tu sauras forger tes paquets y'aura encore pas mal de route a faire sur le chemin de la programmation...  :whistle:  
Le symbole qui sert a prévenir la multi-inclusion c'est tout simplement ca :
 

Code :
  1. // Fichier.h
  2. #ifndef _MON_SYMBOLE_UNIQUE_H_
  3. #define _MON_SYMBOLE_UNIQUE_H_
  4. // placer ici les déclarations
  5. #endif


 
C'est juste dans le cas ou tu fasses  

Code :
  1. #include "Fichier.h"
  2. //....
  3. #include "Fichier.h"


Eh bien la deuxieme fois _MON_SYMBOLE_UNIQUE_ est déja défini, et donc on saute tout le passage jusqu'au #endif, et donc on évite les redéfinitions
 
Bon, c'est sur ici l'erreur saute aux yeux, mais dans la pratique on manipule plusieurs dizaines de .h et certains en incluent d'autres... Ca permet aussi d'éviter l'inclusion cyclique ( a.h inclus b.h, et vice versa )


Message édité par Ace17 le 31-05-2004 à 14:52:12
Reply

Marsh Posté le 31-05-2004 à 15:05:10    

Ok c génial comme méthode. Thx. Au risque de passer pour un super guignol j pose une autre question :
 
dnas netinet/ip.h on a :
 

Code :
  1. struct ip {
  2.         u_int8_t ip_hl:4;


 
que signifie ce type et le :4 apres la variable.


Message édité par joelan le 31-05-2004 à 15:14:27
Reply

Marsh Posté le 31-05-2004 à 15:27:26    

champ de bits ?
 
Ca te dirait pas de te mettre VRAIMENT à la programmation (les 2 dernieres questions sur les inclusions multiples et le :4 c'est vraiment des trucs de débutants...) avant d'essayer d'écrire des trucs au delà de ton niveau, à fortiori dans un but malfaisant ?

Reply

Marsh Posté le 31-05-2004 à 15:33:44    

TotalRecall a écrit :

champ de bits ?
 
Ca te dirait pas de te mettre VRAIMENT à la programmation (les 2 dernieres questions sur les inclusions multiples et le :4 c'est vraiment des trucs de débutants...) avant d'essayer d'écrire des trucs au delà de ton niveau, à fortiori dans un but malfaisant ?


 
Meuhhh non! Ce n'est qu'à vocation éducative: après, il va apprendre à forger des paquets ip. Il nous dit ça parce qu'il ne veut pas trop impressioner le monde mais en fait, il est en train de programmer un os :D

Reply

Marsh Posté le 31-05-2004 à 15:46:08    

Ah pardon :d

Reply

Marsh Posté le 31-05-2004 à 17:05:45    

joelan a écrit :

Au risque de passer pour un super guignol (...)


Et bien, je crois que c'est gagné!  :hello:  
 
Les deux points, c'est des champs de bits, et j'ai un peu l'impression de t'apprendre la programmation la.  :heink:  
D'ailleurs tu ne connais visiblement pas grand chose non plus aux paquets IP, sinon tu aurais compris a quoi servent les ":".
 
Je suis de ceux qui estiment que t'as le droit de garder le silence sur ce que tu vas faire avec ton programme (une fois que t'auras réussi a le compiler :sarcastic:), et donc je t'apprends que ": 4", ca sert a dire au compilo qu'il doit stocker la valeur membre de la structure sur 4 bits (et non pas 8 comme le voudrait le type u_int8_t).  
 
Je peux te dire que tes raisons "pédagogiques" n'ont convaincu personne. Qui irait s'intéresser a essayer de forger des paquets IP sans savoir a quoi ca ressemble a l'intérieur, et sans savoir programmer!


Message édité par Ace17 le 31-05-2004 à 17:06:21
Reply

Marsh Posté le 31-05-2004 à 17:17:12    

Citation :


Je suis de ceux qui estiment que t'as le droit de garder le silence sur ce que tu vas faire avec ton programme (une fois que t'auras réussi a le compiler ),


 
C kler :lol:, j suis toujours en train d essayer de virer les erreurs.  
J'px pas me permettre de répondre aux critiques.
 Je souligne juste que ce programme ( si il se compile ) n'a aucune fin malfaisante. J'ai effacé tout le code et comme vous l'avez deja remarqué je suis débutant.  
 
Et oui j'avoue !


Message édité par joelan le 31-05-2004 à 17:25:39
Reply

Marsh Posté le 31-05-2004 à 17:19:47    

Dis moi, ca fait combien de temps que tu fais du C?

Reply

Marsh Posté le 31-05-2004 à 17:31:32    

Ace17 a écrit :

Dis moi, ca fait combien de temps que tu fais du C?


 
J'ai commencé à écrire le forgeur de paquet icmp hier matin. Mon premier programme date d'un mois ( j ai mis 3 jour à le faire : compression LZW) et depuis rien.


Message édité par joelan le 31-05-2004 à 17:32:33
Reply

Marsh Posté le 31-05-2004 à 17:33:59    

tu veux pas apprendre le C avant :dawa:?

Reply

Marsh Posté le 31-05-2004 à 17:39:16    

Taz a écrit :

tu veux pas apprendre le C avant :dawa:?


 
J'y travaille.  
 
a+

Reply

Marsh Posté le 31-05-2004 à 17:42:02    

joelan a écrit :

Mon premier programme date d'un mois ( j ai mis 3 jour à le faire : compression LZW)


T'as programmé un compresseur en 3 jours alors que t'avais jamais rien programmé d'autre en C avant?  :ouch:


Message édité par Ace17 le 31-05-2004 à 17:42:14
Reply

Marsh Posté le 31-05-2004 à 17:42:36    

NON ON VEUT PAS VOIR LE CODE

Reply

Marsh Posté le 31-05-2004 à 17:43:49    

Taz a écrit :

NON ON VEUT PAS VOIR LE CODE


 
:lol:


---------------
Un matin je me lèverai et il fera beau.
Reply

Marsh Posté le 31-05-2004 à 17:46:13    

Taz a écrit :

NON ON VEUT PAS VOIR LE CODE


Bah... si on peut plus rigoler maintenant!  :lol:

Reply

Marsh Posté le 31-05-2004 à 20:01:16    

Me revoila :lol: C fait le forgeur est codé. Le prog envoie un Echo request à une IP et recoit un Echo reply à une autre.
 
J'aimerais capturer les paquets sortant pour voir comment ils sont ( s il s agit bien de paquet Echo request ).
 
Chui mort a+

Reply

Marsh Posté le 31-05-2004 à 20:02:40    

montre ce que ça donne au final

Reply

Marsh Posté le 31-05-2004 à 20:09:48    

ici ?
Klk1 sait comment je peux verifier que le paquet envoyé est bien valide ?
 
Ya un moyen de capturer les paquets qui sortent de mon putin de modem ?
 
Aidez moi je craque  :pt1cable:


Message édité par joelan le 31-05-2004 à 20:13:49
Reply

Marsh Posté le 31-05-2004 à 20:12:48    

ben si c'est pas trop long. sinon, un lien vers un tar/zip. enfin c'est si tu veux des commentaires sur ton style

Reply

Marsh Posté le 31-05-2004 à 20:15:28    

j px t envoyer ca par un logiciel de chat ?
Comment dire  ... c trop explicite, jve me fer tuer  si j post ca
 
 J TE ENVOYER UN MP MATTE


Message édité par joelan le 31-05-2004 à 20:17:23
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed