elguevel
Messages postés718Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention22 novembre 2016
-
3 août 2006 à 16:56
elguevel
Messages postés718Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention22 novembre 2016
-
4 août 2006 à 09:22
Bonjour à tous,
Voila je ne pose pas souvent de question mais là autant le faire, avant que je me déchire pour rien.
Ca fait déja plusieurs heures que j'essai de programmer une RawSocket afin de pouvoir forger une trame IP spécifique. (Rien d'illégal, c'est pour une futur source sur DelphiFr).
Le problème est que j'ai systématiquement une erreur Winsock 10049 dixit la MSDN : Impossible d'allouer l'adresse demandée.
J'ai reverifié mes trames et mes structures IP et UDP 10 fois au moins (via frameip.com) et mes adresses IP ont l'air bien placées.
Ma question première question serai : Est ce que les Raw Socket fonctionne sous XP ? (car des rumeurs semblent dire que Microsoft les a supprimés !)
Si non, alors la suite ...
* Voila mes structures IP et UDP :
// Entete IP ( Couche 3 )
type ENTETE_IP = record
IP_version : Byte; // Version (4 bits)/IHL (4 bits)
IP_service : Byte; // Service
IP_longeure : Word; // Longeure total ( IP+UDP+Message )
IP_id : Word; // Identification
IP_offset : Word; // Flags (3 bits)/Pos.frag. (13bits)
IP_ttl : Byte; // TTL
IP_protocol : Byte; // Protocole
IP_checksum : Word; // Checksum
IP_srcaddr : LongWord; // IP Source
IP_destaddr : LongWord; // IP Destination
IP_option : LongWord; // Facultatif, et non utilisé ici
end;
// Entete UDP ( Couche 4 )
type ENTETE_UDP = record
UDP_srcport : Word; // Port source
UDP_destport : Word; // Port Destination
UDP_longeure : Word; // Longeure total ( UDP + Message )
UDP_checksum : Word; // Checksum
end;
* Le code principal qui appel les différentes fonctions principales
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023123 3 août 2006 à 17:11
Si tu as XP SP1, les raw socket sont désactive depuis un fix post sp1, pour les réactiver il faut désactiver le firewall :s
Si tu as windows XP SP2, la création des raw socket à été désactivée. il faut passer par winpcap.
elguevel
Messages postés718Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention22 novembre 20163 3 août 2006 à 17:32
Arggg dégouté tout ce boulot pour rien .... bon ba on va passer par WinPcap !!!
mais un truc me turlupine, les RawSockets sont soit disant désactivés et une librairie comme WinPCap arrive tout de même à forger ses paquets, elle le fait comment ? langage bas niveau ? Drivers ?
elguevel
Messages postés718Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention22 novembre 20163 4 août 2006 à 09:22
Le service du firewall d'XP est systématiquement désactivé sur mes machines (j'ai autre chose pour çà). Je désactive d'autres services par ailleurs qui ne servent pas à grand chose, et economise ainsi un peu de ressource.
Sinon pour le SP2, pas trop le choix, avec leur mises à jour auto.
Et puis un programme doit pouvoir être le plus portable possible, alors si je fait un truc qui tourne sous la SP1 et pas sur la SP2, on va encore dire que mes trucs marches pas ...