logo Homepage
+  NewbieContest
|-+  Programmation» Langages compilés» [C] paquet tcp
Username:
Password:
Pages: [1]
  Imprimer  
Auteur Fil de discussion: [C] paquet tcp  (Lu 3508 fois)
Ss2K
Profil challenge

Classement : 7107/54314

Néophyte
*
Hors ligne Hors ligne
Messages: 32


Voir le profil
« le: 13 Avril 2007 à 15:16:27 »

Bonjour,
je suppose qu'il est possible de "forger" soit meme ses propres paquet tcp (ou udp, ou uucp) en ANSI C, probleme je n'arrive pas a trouver un tutorial ou un site qui me convienne, j'entend par la un site qui parle bien d'ANSI C (pas de c++), et qui ne me parle pas d'api Windows (parce que sous linux l'api windows je sais pas trop si ca marche).
Quelqu'un connaitrais un bon site français qui explique comment je peux faire ?
Journalisée

Si TOUT est VRAI alors TOUT est FAUX ! ( _TT-o )
Enjoy !
Invit
Invité
« #1 le: 14 Avril 2007 à 08:49:37 »

Google : "linux sockets tutorial"   <--- awesome search trick
Google : "linux raw sockets"     <--- another l33t search trick
Beej's Guide to Network Programming Using Internet Sockets, une référence, sinon LA référence...
Le même (à priori) en Français (j'en profite pour trier mes bookmarks )
Client - Server TCP en C, sur le site d'IPrelax
About native RAW sockets by Nitr0gen
Quelques notes sur la prog réseaux, par Emmanuel Delahaye
Exemple de code simple portable Win32/Linux
Lien interressant aussi, concerne Windows, sur le site de FrameIP (note que je te fais pas l'affront de mettre le lien vers le Winsock2 Reference Guide )

A mon avis là t'as de quoi faire, quant aux deux premiers, m'est avis que tu pouvais quand même les trouver tout seul .
Journalisée
Zmx

Profil challenge

Classement : 71/54314

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 559


Voir le profil WWW
« #2 le: 14 Avril 2007 à 19:54:31 »

Rien pour eviter les BoF ?
Journalisée

IoNAce
Profil challenge

Classement : 2113/54314

Membre Junior
**
Hors ligne Hors ligne
Messages: 63


Voir le profil
« #3 le: 15 Avril 2007 à 22:41:47 »

Hello

Les buffers overflow sont lies a un mauvais codage de la part du developpeur. A moins de creer un garbage collector (comme en java ou en php par exemple), il n'y a pas de possibilite d'eviter sa (a ma connaisssance evidement) a moins de programmer correctement.
De toute facon, j'ai du mal a voir pourquoi tu cherches a limiter des BoF sur les sockets ? Toutes les fonctions de bases traitant les sockets utilisent en argument la taille du buffer de reception. Sur que si tu donne en param un pointeur sans restrictions et que  tu ne verifies rien, sa va un peu n'importe ou

Il n'y a que si tu utilisent les raw sockets en tcp et que tu detectes une fragmentation de paquet que tu peut te faire avoir : les paquets fragmentes une fois rassembles depasse la taille du tampon et deborde sur la pile... Je me souviens que cette faille etait presente sur Windobe 95 (voir 98 premier du nom il me semble) et le noyau linux (mais un vieux hein )


@++
Journalisée
Rhesus

Profil challenge

Classement : 908/54314

Néophyte
*
Hors ligne Hors ligne
Messages: 21


Voir le profil
« #4 le: 16 Avril 2007 à 17:55:29 »

Cela peut aussi venir d'une mauvaise gestion de la chaîne reçu par la suite, pas forcément à la réception !
Un exemple tout bête. On récupère disons, 20 caractères dans un buffer ayant la taille suffisante et on utilise un strcpy dans un buffer qu'a une taille de 5 ben t'as 15 caractères qui débordent! Bon cet exemple est très explicite mais ils sont parfois plus sournois, comme certaines failles PHP ne sautent pas forcément aux yeux! Le seul moyen d'éviter cela, c'est toujours de coder proprement, avec les bonnes habitudes, et en manipulant les chaines avec beaucoup de précaution ! Mais l'erreur reste humaine, et les BoF toujours aussi passionnantes !
Journalisée
IoNAce
Profil challenge

Classement : 2113/54314

Membre Junior
**
Hors ligne Hors ligne
Messages: 63


Voir le profil
« #5 le: 16 Avril 2007 à 18:41:29 »

C'est vrai que j'y avais pense mais oublie de le noter.
A faire tres attention egalement
Journalisée
Pages: [1]
  Imprimer  
 
Aller à: