[R] Réception et analyse de packets TCP

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
lucesta
Niveau 3
Niveau 3
Messages : 33
Enregistré le : lun. 07 mai 2012 20:39
Localisation : France
Status : Hors ligne

[R] Réception et analyse de packets TCP

#1

Message par lucesta »

Bonjour,

Je cherche un petit bout de code qui me permettrais de recevoir des données contenues dans des packets TCP.
Il faudrait que le scripte tourne en boucle ( mais ça je sait le faire ) et qu'il analyse touts les packet reçu, il doit chacun les comparer a des petit bout de texte contenus dans le scripte jusqu'à ce qu'il reçoive un packet qui contient les mêmes donnée que celle qu'il attend.
Puis quand il a reçu les données qu'il attendais, il doit exécuter un certain nombre d'autres taches.
Le bout de code que je cherche devra donc simplement analyser les packet reçu, puis les comparer un par un avec d'autres mots et ètre capable de faire différentes actions quand il reconnait un des packet.

Merci d'avance pour vos réponses :)
Modifié en dernier par lucesta le lun. 28 mai 2012 15:27, modifié 1 fois.
Avatar du membre
Uranium
Niveau 5
Niveau 5
Messages : 143
Enregistré le : mer. 28 mars 2012 13:13
Status : Hors ligne

Re: [..] Réception et analyse de packets TCP

#2

Message par Uranium »

Personne ne réponds.
Dommage je trouve ce topic intéressant et j'aimerais moi aussi une solution ...

Néanmois , tu devrais te pencher sur : Wincap.au3
« En mathématiques, “évident” est le mot le plus dangereux. »
Avatar du membre
lucesta
Niveau 3
Niveau 3
Messages : 33
Enregistré le : lun. 07 mai 2012 20:39
Localisation : France
Status : Hors ligne

Re: [..] Réception et analyse de packets TCP

#3

Message par lucesta »

oui c'est dommage que personne ne réponde :(
et merci pour le lien :)
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Réception et analyse de packets TCP

#4

Message par blacksoul305 »

C'est un sujet intéressant, certes mais qui est pour le moins compliqué. Déjà que le TCP n'est pas facile à maîtriser, l'analyse et une autre paire de manches.

Je peux toutefois te donner ce lien, tu pourras voir la structure d'un paquet. Manque à savoir comment réceptionner et analyser un paquet, sachant que ceux-ci peuvent être cryptés. Bien sûr si ce sont des paquets envoyés de par des sites, le navigateur n'est pas censé les décrypter, mais par contre sur les serveurs de jeux (j'ai que ça comme exemple), ils le sont (cryptés).

EDIT : Soit dit en passant, il faudra sûrement marcher sur les plates bandes d'un autre logiciel, pour les navigateurs webs le port d'écoute est 80 je crois.
Étudiant en 2ème année de Licence Informatique.
Avatar du membre
lucesta
Niveau 3
Niveau 3
Messages : 33
Enregistré le : lun. 07 mai 2012 20:39
Localisation : France
Status : Hors ligne

Re: [..] Réception et analyse de packets TCP

#5

Message par lucesta »

salut blacksoul305,

En effet c'est un sujet assez compliqué. :/
Et pour ce qui est des packets cryptés, il n'y a pas de problèmes car j'ai conçu une partie qui envoie les packets, et les packets a recevoir et analyser sont donc assez simple et non cryptés.
En tout cas pour ceux qui savent utiliser des commandes du genre TCP receve ( désolé je ne sait plus la commande ), je veut bien vos conseilles.
Même un petit bout de code peut aider :)
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Réception et analyse de packets TCP

#6

Message par blacksoul305 »

Voilà un petit script, il faudra remplir $ip et $port par contre :

Code : Tout sélectionner

Global $port = ""
Global $ip = ""

$socket = TCPListen($ip,$port)
If $socket = -1 Then
    MsgBox(16,"erreur","création du socket impossible, erreur n°" & @error)
    Exit
EndIf

$isConnected = -1

Do
    $isConnected = TCPAccept($socket)
    Sleep(10)
Until $isConnected <> -1

Do
    $recv = TCPRecv($isConnected,9999)
    If Not $recv = "" Then MsgBox(64,"Paquet reçu",$recv)
Until $recv <> ""

Exit
EDIT : Correction du code
Étudiant en 2ème année de Licence Informatique.
Avatar du membre
lucesta
Niveau 3
Niveau 3
Messages : 33
Enregistré le : lun. 07 mai 2012 20:39
Localisation : France
Status : Hors ligne

Re: [..] Réception et analyse de packets TCP

#7

Message par lucesta »

Et dans ce scripte tu croit qu'il y a possibilité de de mettre un truc du genre :

If packet = .... then
Msgbox packet attendu bien recu

??
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Réception et analyse de packets TCP

#8

Message par blacksoul305 »

Euh, bah après ce que je fais moi, c'est que je rajoute un switch comme ceci :

Code : Tout sélectionner

$recv = TCPRecv($isConnected,9999)
If Not $recv = "" Then ; ça sert rien de vérifier le paquet s'il est vide.
    Switch $recv
        Case ...
        
        Case ...
         
        Case default

    EndSwitch
EndIf
Étudiant en 2ème année de Licence Informatique.
Avatar du membre
lucesta
Niveau 3
Niveau 3
Messages : 33
Enregistré le : lun. 07 mai 2012 20:39
Localisation : France
Status : Hors ligne

Re: [..] Réception et analyse de packets TCP

#9

Message par lucesta »

blacksoul305 a écrit :Euh, bah après ce que je fais moi, c'est que je rajoute un switch comme ceci :

Code : Tout sélectionner

$recv = TCPRecv($isConnected,9999)
If Not $recv = "" Then ; ça sert rien de vérifier le paquet s'il est vide.
    Switch $recv
        Case ...
        
        Case ...
         
        Case default

    EndSwitch
EndIf

désolé mais je comprend pas trop comment il marche :?
tu peut m'écrire le petit bout de code pour qu'il mette une msgbox si il trouve "test distant" dans un packet ? stp
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Réception et analyse de packets TCP

#10

Message par blacksoul305 »

Désolé, je te fais ça de suite :

Code : Tout sélectionner

$recv = TCPRecv($isConnected,9999)
If Not $recv = "" Then ; ça sert rien de vérifier le paquet s'il est vide.
    Switch $recv ; On teste ce qu'a reçu la commande
        Case "test distant" ; Si $recv = "test disant" alors
            MsgBox(64,"plop","nous avons trouvé test distant")
        Case ... ; une valeur que tu veux à tester
               ; une autre ou des autres actions à faire
        Case default ; si $recv ne correspond à aucun de ce que l'on a voulu tester
               ; il fait cette action.
    EndSwitch
EndIf
ça va mieux ?
Étudiant en 2ème année de Licence Informatique.
Avatar du membre
lucesta
Niveau 3
Niveau 3
Messages : 33
Enregistré le : lun. 07 mai 2012 20:39
Localisation : France
Status : Hors ligne

Re: [..] Réception et analyse de packets TCP

#11

Message par lucesta »

Ah ouais génial :D
Nickel
merci beaucoup
je pense que juste ça me suffira :)
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Réception et analyse de packets TCP

#12

Message par blacksoul305 »

P'tite rectification, dans le code ci dessus c'est si ce que tu reçois est vraiment mot pour mot "test distant".
Étudiant en 2ème année de Licence Informatique.
Avatar du membre
lucesta
Niveau 3
Niveau 3
Messages : 33
Enregistré le : lun. 07 mai 2012 20:39
Localisation : France
Status : Hors ligne

Re: [..] Réception et analyse de packets TCP

#13

Message par lucesta »

Oui oui tkt pas j'avais compris ;)
Répondre