Les Forums
Les forums sont fermés. Ils restent présent pour consultation et archivage.
Vous pouvez désormais poser vos questions directement dans les commentaires en bas de chaque page du site.
Alors n'hésitez pas à participer
le checksum
Re, c'est encore le ptit b0mbjack 😉 dans la rfc pour udp, le checksum prend en compte un pseudo entete udp le pseudo entete udp contient l'ip source et destination checksum udp = PseudoEnteteUDP + EnteteUDP + DATA (les 2 champs sont identique au champ ip source et destination de l'entete ip normalement)...donc ma question est : pourkoi sur frameip le checksum udp ne change pas quand on modifie l'ip source et destinataire |
le champ longueur totale de l'entete ip on le fait apres avoir rempli le champ du checksum ip,cheksum udp? EnteteIp.Longueur = EnteteIp + PseudoEnteteUDP + EnteteUDP + DATA je m'embrouille trop 😳 |
erreur de ma part, je confirme ... le checksum udp change quand on change l'ip de l'entete ip desolé ^^ |
Lu b0mbjack, As tu répondu seul à tes propres questions ou en reste t il en suspend ? @+ _SebF - Sébastien FONTAINE |
Lu Seb, je rempli ma structure, avec les meme parametres que frameip et j'ai pas le meme checksum 'je procede comme ca je rempli ma structure enteteip et je laisse à 0 le champ totalelongueur et le checksum juste apres je rempli le champ checksum Enteteip.Checksum = ...fonction Checksum je forge le pseudoenteteudp et l'enteteudp et apres je rempli le champ totale longueur Enteteip.Longueur = Enteteip+PseudoEntete+EnteteUDP+DATA ' à titre d'info j'ai version et Len de l'enteteip sur cette structure Enteteip.Version = 4 Enteteip.Len = 5 et non sur un seul : enteteip.verLen = (4<<5) 'pour la longeur du pseudoenteteudp PseudoEnteteUDP.Len =LaTailleDe(EnteteUDP + DATA) et quand je forge mon paquet EnteteIP & PseudoEnteteUDP & EnteteUDP & DATA et que je compare mon checksum par rapport à frameip, j'ai une différence qui varie entre 300...jusqu'a 3000 pour le checksum ip, elle est petite la différence mais c'est pour le checksum udp, j'ai au moins un bon ptit 3000 sinon pour l'envoi et la reception y'a pas d'erreur sauf ke le data(ma phrase) lors de la reception j'ai plus ca...à la place j'ai des caracteres bien chelou .... 🙂 (il doit pas etre complet mon paquet!) ' 2ieme partie concernant icmp voila mon paquet eIcmp.Type = 8 eIcmp.Code = 0 eIcmp.Checksum = 0 eIcmp.Checksum = ...fonction checksum eIcmp.Identifiant = 0 eIcmp.Sequence = 0 et je le forge comme ca EnteteIp & eIcmp pareil, par rapport à frameip, j'ai pas le meme resultat pour le checksum mais j'ai la meme longueur total pour l'entete ip et icmp lors de l'envoi , j'ai aucune erreur avec la fonction Sendto ...mon paquet est bien parti mais je receptionne kedal quand je remplace mon checksum enteteip sur frameip, je receptionne bien les données....mais quand je remplace le checksum de l'entete icmp par le mien, je recois plus la trame envoyer par frameip et j'arrive pas à comprendre cette différence de checksum , pourtant je prend bien le pseudoentete dans mon paquet chose importante aussi , voila comment je crée le socket Sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP) |
Re Seb y'a du nouveau pour ICMP mon checksum ip : 47436 checksum frameip : 47180 mon checksum icmp : 63231 checksum frameip icmp : 63487 la différence est de 256 pour checksum ip, j'ai 256 en plus ke frameip et pour le checksum icmp il me manque 256 🙄 |
Lu b0mbjack, C'est pas mal. Au feeling, comment traite tu tes entêtes et ta data ? si tu utilise des sprintf() ou strcpy() alors ton problème est compréhenssible. J'espère que tu utilise memcpy 🙂 Sonne ton code car je ne vois pas. @+ _SebF - Sébastien FONTAINE |
c'est du vb6.....no probleme ? |
Re Seb on raoncte que sur xp sp2 on peut pas crée des raw sockets!! sur frameip, y'a TCP qui marche pas pour l'envoi des paquets (je parle meme pas des changement d'ip) car sur xp sp2 c'est pas possible car le module internet de notre hote controle l'ip de la carte reseau avec le champ ip source, si elle correspond pas...le champ est corrigé automatiquement. de plus la sp2 est integrée à mon xp, donc impossible de la killer j'dois me tapé une partition et mettre un bon vieux windaube pour etre sur de pouvoir forger mes entetes elle m'enerve trop cette sp2 mais sachant que le icmp marche bien sur frameip dis moi comment tu as déclaré le socket choix 1) Sock = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP) choix 2) Sock = socket(AF_INET, SOCK_RAW, IPPROTO_RAW) (les 2 choix marche chez moi, sauf que en mode raw je recoi quelque chose avec un protocole raw! ...valeur 255 et le mode icmp je recoi rien) |
Lu b0mbjack, Avec le SP2, tu ne peux pas en mode RAW faire de l'IPSpoofing et m^me pas utiliser TCP du tout. Toutes mes socket sont en mode RAW 😉 C'est pourquoi j'ai dernièrement tout redéveloppé en Libpcap avec un argument supplémentaire -send_mode qui permet de choisir l'envoi en Socket RAW ou en Libpcap. @+ _SebF - Sébastien FONTAINE |
Lu Seb, j'ai solutionner mon probleme de checksum tout est bon!!..ca fait plaisir!! sinon quand je change le Type à 8 et le code toujours 0, c'est pour faire un echo request ma question est la suivante Ps: à la fin, j'compte déposé une source en vb6 sur ton site "générateur de trame ip/tcp/udp/icmp" ...avec des commentaires à bientot .....++ |
Lu b0mbjack, Cool, je suis content pour toi. Peux tu nous expliquer ce que tu as fait pour corriger le problème ? Pour la Data, je penses que l'on peux mettre ce que l'on veux. Dans mes dev, je remplis les data de "www.frameip.com" 🙂 @+ _SebF - Sébastien FONTAINE |
Lu Seb, y'a un truc que je comprend pas il faut quel port pour utiliser l'echo request quand j'envoi ma trame en echo request de Type 8 Code 0 dans mon sniffeur, j'ai le Type Reserved et le code N/A,c'est à dire rien |
Lu b0mbjack, Il n'y a pas de port dans ICMP. @+ _SebF - Sébastien FONTAINE |