AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TCP-Pakete defragmentieren

Ein Thema von CCRDude · begonnen am 26. Sep 2011 · letzter Beitrag vom 14. Okt 2011
Antwort Antwort
CCRDude

Registriert seit: 9. Jun 2011
669 Beiträge
 
FreePascal / Lazarus
 
#1

TCP-Pakete defragmentieren

  Alt 26. Sep 2011, 10:03
Ich versuche mich gerade ein wenig an Traffic-Analyse per WinPcap. Immer den transparenten Proxy zu verwenden oder per Wireshark auszuwerten ist auf Dauer nervig, mir schwebt so etwas wie das Proxomitron-Log-Fenster vor.

Die WinPcap-API ist an sich ja einfach, entsprechend hatte ich auch keine Probleme, Importe zu definieren und kann Datenverkehr auf gewähltem Interface beobachten. Dann IP-Pakete anschauen, TCP-Packete erkennen, mehrere zusammengehörende zu cachen, und auf das PSH hin in den nächsten Verarbeitungsschritt zu gehen (inklusive HTTP anhand des Ports und Anfangsbytes erkennen), das geht alles. Auch perstistent HTTP connections auseinanderpflücken ist ja nicht das Ding.

Nur mit dem Zusammensetzen der TCP-Pakete bin ich noch nicht so ganz vertraut. Ich habe mal vesucht, den TCP-Header diesbezüglich zu verstehen, indem ich mit Wireshark eine Kommunikation verfolgt habe, bin mir aber unsicher, wie ich das zuverlässig zusammensetze.

Gibt's da ne leicht verständliche "Anleitung" oder Dokumentation zu? Ich hatte jetzt schon mehrfach die Situation, daß ich dachte, anhand SYN, Sequence Number und Acknowledgment Number die richtige Ordnung gefunden zu haben, aber irgendwo hängts noch, und vielleicht hat's ja schonmal jemand hier durchgekaut und kann mir netterweise Zeit mt ein paar Tipps ersparen ersparen
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
669 Beiträge
 
FreePascal / Lazarus
 
#2

AW: TCP-Pakete defragmentieren

  Alt 14. Okt 2011, 08:04
Ich schiebe mal vorsichtig nochmal nach oben und hänge eine Frage an:

Sind meine Fragen eigentlich zu unverständlich formuliert? Zu unhöflich? Oder zu weit abseits des üblichen Interesses? Liegt's an meiner Person?

Von meinen letzten 5 Fragethreads (den heutigen neuen noch nicht eingeschlossen) hat gerade mal einer überhaupt eine Antwort, wenn auch keine Lösungsansätze, erhalten. Das verwundert mich etwas, wo hier doch zu so gut wie jedem Thread etwas geschrieben wird
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.056 Beiträge
 
Delphi 2010 Enterprise
 
#3

AW: TCP-Pakete defragmentieren

  Alt 14. Okt 2011, 09:10
Zu Deiner technischen Frage kann ich Dir nichts sagen, davon hab ich keine Ahnung. Zum Rest:

Es gibt sicher in jedem Forum Trolle, bei denen die User die Augen verdrehen, wenn die schreiben. Ob das bei Dir so ist, kann ich nicht sagen. Dein aktueller Thread scheint mir vollkommen normal und ich habe mir nicht die Mühe gemacht, Deine anderen Posts zu suchen, geschweige durchzulesen. Wer weiß, vielleicht hast Du ja ein paar Leichen im Keller. Es gibt sicher ne menge Möglichkeiten, sich in einem Forum unbeliebt zu machen, umgekehrt geht's natürlich auch. Ich finde es z.B. immer seltsam, wenn außer der Eingangsfrage nichts weiter vom TE kommt... das Thema ist vielschichtig.

Antwortvolumen, -Qualität. -Geschwindigkeit und Umgangston finde ich hier recht gut. Gerade deshalb kann man wohl davon ausgehen, dass die Experten hier tatsächlich meist aus dem "Stand" schreiben ohne sich mit der Antwort ewig aufzuhalten. Ist ja schließlich keine bezahlte Hotline hier.

Hilfreich ist sicher eine möglichst konkrete Frage, das wäre hier evtl. steigererungsfähig. Ansonsten: Zumindest dieses Thema hier (TCP) ist jetzt nicht grad ein klassisches Delphithema und eine Antwort benötigt eine gewisses Maß an spezifischem Fachwissen. Vielleicht suchst Du dazu ein spezielleres Forum.

Zum Thema Stil usw. gibt es auch schon ein paar Threads glaube ich, in denen aufgeführt und diskutiert wird, was man erwartet, erwarten könnte usw.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#4

AW: TCP-Pakete defragmentieren

  Alt 14. Okt 2011, 09:35
Ich habe in der Uni was zur TCP-Paketfragmentierung gemacht. Ich erinnere mich, dass das nicht gerade intuitiv war. Ich schaue heute abend mal, was ich da noch an Unterlagen finde.
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
669 Beiträge
 
FreePascal / Lazarus
 
#5

AW: TCP-Pakete defragmentieren

  Alt 14. Okt 2011, 09:44
Das wäre super, Codewalker, vielen Dank

@jobo: vielen Dank für Deine ausführliche Antwort! Klar ist das Thema hier nicht trivial, dem Grund würde ich auch die höchste Wahrscheinlichkeit verpassen. Und mal versuchen, noch spezifischer zu sein.
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#6

AW: TCP-Pakete defragmentieren

  Alt 14. Okt 2011, 15:52
Hi,

meine Kenntnisse würde ich auch eher als "grundlegend" einsortieren, aber vielleicht kann ich dir trotzdem weiterhelfen.

Zunächst mal verstehe ich aber die Frage noch nicht.
Was genau möchtest du machen? Bei dem Stichwort Fragmentierung denke ich an zerstückeln von zu großen Nachrichten, da sie nicht durch die Leitung passen (Stichwort MTU). Da gibt es dann ein Bit im Header das sagt, ob noch weitere Pakete kommen oder ob man ein Endpaket in Händen hält.
Dann gibt es noch den 3-Way-Handshake zum Aufbau einer TCP Connection - da tue ich das SYN-Paket hin.

Wie ich diese zwei Sachen zusammen bekomme und wo deine Frage genau liegt, sehe ich leider noch nicht


LG, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
669 Beiträge
 
FreePascal / Lazarus
 
#7

AW: TCP-Pakete defragmentieren

  Alt 14. Okt 2011, 16:14
Was ich genau machen möchte?

Fragmentierten Netzwerktraffic zusammenstückeln

Ähnlich wie Wiresharks "Follow stream", nur viel schlichter, möchte ich beispielsweise allen HTTP-Verkehr überwachen. Dazu nutze ich WinPcap, und bekomme Pakete, wie sie WinPcap liefert.

Dann gehe ich hin (ich hänge meinen Code einfach mal an), und erkenne (PCAPHandler) am Header dieser Pakete etwa, daß es sich um ein IPv4-Paket handelt. Diesen untersuche ich (ProcessIPv4Packet), und verarbeite TCP-Pakete weiter (ProcessTCPPacket). Alles was auf Port 80 funkt oder mit "GET " oder "POST " anfängt (ich weiß, "HEAD " bräuchte ich z.B. auch noch), sammle ich dann (ProcessHTTPPacket) und verarbeite es weiter (ReportStream).

Und da bin ich nun. Ich habe HTTP-Anfragen und Antworten, zwischen denen ich stumpf anhand eines Wechsels des Ports unterscheide. Nur - die Kommunikation kann ich so nicht wiederherstellen, da die Reihenfolge nicht immer korrekt ist.

Anders beschrieben: ich habe beispielsweise alle Netzwerkpakete einer über HTTP übermittelten Datei, und muss sie jetzt in die richtige Reihenfolge bringen.

Das Endpaket wird vermutlich durch PSH im TCP-Header (ControlFlags) markiert?
Angehängte Dateien
Dateityp: pas snlAPIWinPCAP.pas (32,9 KB, 10x aufgerufen)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf