2010-04-11 3 views
0

J'ai utilisé sharppcap pour capturer les paquets TCP. Maintenant je veux reconstruire le paquet HTTP des paquets TCP mais je ne sais pas comment. J'ai lu quelque part je peux trouver le début du paquet HTTP dans les données de TCP ... j'ai essayé de convertir des données de byte [] TCP en chaîne en utilisant ce code: chaîne s = System.Text.Encoding.UTF8.GetString (tcp_pack.Data); mais la chaîne n'est pas lisible. comme un fichier binaire ouvert avec le bloc-notes. est-ce parce que les données sont cryptées ou que le code est incorrect? comment puis-je reconstruire un paquet HTTP à partir de paquets TCP?Comment convertir en chaîne et lire les données du paquet TCP

+0

Les requêtes/réponses HTTP ne sont PAS chiffrées, sauf si elles passent par SSL (HTTPS). Oui, vous pouvez reconstruire les paquets HTTP, mais je n'ai jamais utilisé de fichier sharpcap auparavant, donc je suis incapable de dire comment utiliser exatcly ses fonctions/méthodes. Un exemple C/C++ peut-il vous aider d'une quelconque façon? – jweyrich

Répondre

0

essayer « Encoding.BigEndianUnicode.GetString (tcp_pack.Data) »

0

Il n'y a aucun moyen facile à faire parce que vous aurez besoin de reconstruire la session TCP en mémoire. En gros, si un message envoyé est plus grand qu'un paquet, il est divisé en plusieurs paquets. Par conséquent, vous devrez capturer ces paquets, les organiser dans le bon ordre et réassembler les données manuellement.

Si le message est court/simple et ne se décompose pas en plusieurs parties, vous devez trouver le format de la charge utile. Essayez d'abord de décoder en ASCII.

Questions connexes