![]() |
gzip-String "entpacken"???
Hallo!
Mit Hilfe von PCap verfolge ich den Datenstrom einer AJAX-basierten Webseite. Als Ergebnisse dieser Verfolgung erhalte ich Strings, die so aussehen (nur ein Beispiel): HTTP/1.1 200 OK Date: Fri, 21 Nov 2008 22:24:18 GMT Server: Apache Vary: Accept-Encoding Content-Encoding: gzip Keep-Alive: timeout=5, max=68 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/javascript;charset=ISO-8859-1 a .......... 334 ..moV......X.`'...;`....I...Y........srr8x;.c.y... ..K.TP....r...$cX{........].............gE%y..._.|.a>/.7.,..!y.S.. V.....i^....`%..x..0M."..s...gE..<...a..0..{=B.... ......'.^.X.z......0.......B..? .........!....."..`).......&.9...../Kl...U[3LR...y.)..a0.F.........%.1.@.w.M..7..fu.~@.OPoP.. ..R^.Y\V.._'..........%KS..9K%..O.-.F.n..D.P.LN..w.........Rn.]^e3,..=}Y.A...5..N.Hj8D_...@]|..X%.XX..n.r.....e.e....7..F...7.....?.e.YQ.v .....-T.O.~.. hhz....Cz.....tew..3...y.=...b= ..Y+:..6j\..9~..e.\.*-....O.c...............8.S....p.c.3x.....h. .3..G....1~...x. 3.=....fz...g?...c.,....M....L...*...4..2..)C.}... ..I......FG@V...^NR..VW,.t..6..*Qu......f.. .. 0 wobei das erste Teil Response-Header ist und das zweite Teil die eigentlichen Daten. Aus dem Header kann man sehen, dass die Daten mit gzip gepackt sind. Wie kann ich diese Daten in lesbaren Text "entpacken"? |
Re: gzip-String "entpacken"???
per
![]() |
Re: gzip-String "entpacken"???
Leider habe ich bis jetzt nichts gefunden, womit ich die Daten entpacken kann.
Hat jemand noch Ideen oder vielleicht fertige Funktion? |
Re: gzip-String "entpacken"???
es kommt drauf an wie der String gepackt wurde ... unter umständen ist da noch ein kleiner Header davor
kann nur grad nicht nachsehn wie groß der sein könnte notfalls einfach ausprobieren ... etwa so (wenn's sich nicht entpacken läßt, dann erstes Zeichen löschen und nochmals versuchen)
Delphi-Quellcode:
S := .....; // dein string
While not GZipDeflate(S, OutS) do Delete(S, 1, 1); |
Re: gzip-String "entpacken"???
Danke für den Tipp!
Wo kommt dieses GZipDeflate her? |
Re: gzip-String "entpacken"???
keine Ahnung ... ist 'nur 'nen Beispiel :roll:
mußt sozusagen deine dir zur Verfügung stehenden Funktionen da einbauen.
Code:
was ich noch weiß, daß ich damals in PHP meine Strings per "Deflate" gepackt hatte und es so verschickte
anfang:
versuche zu entpacken geht > springe raus 1. zeichen löschen springe zu zum anfang raus: |
Re: gzip-String "entpacken"???
Zitat:
|
Re: gzip-String "entpacken"???
Hi romber,
leider schreibst Du nicht, welche Delphi Version Du nutzt. D2006 hat z.B. zlib 1.1.x und D2009 hat zlib 1.2.3 mit dabei. Einfach zLib in die uses Klause nehmen und nutzen. Für die Benutzung der zlib Unit einfach mal die Unit öffnen und gucken, welche Funktionen dort in der implementation stehen. Alternative: mal im Internet nach zLibEx suchen. Dieses bietet zlib v1.2.3 auch für ältere Delphi Versionen. Hinweis: Willst Du die Daten aus Deinem Netzwerk Sniffer (PCab) so verwerten, wie diese oben stehen? Weil dort ja der Zeichenbereich begrenzt ist somit Informationen schon flöten sind (das also mit dem Entpacken des gz nichts wird)... Gruß Assertor |
Re: gzip-String "entpacken"???
Zitat:
In meinen ![]() Gruß Gammatester |
Re: gzip-String "entpacken"???
@Assertor
Danke für die Antwort! Ich habe Delphi 2009 und ich war mir auch sicher, dass es an der Delphi-Version liegt. Aber vielmehr beschäftigt mich jetzt das hier: Zitat:
|
Re: gzip-String "entpacken"???
Zitat:
|
Re: gzip-String "entpacken"???
Hi,
Zitat:
Mit ANSI/Unicode hat das hier noch nichts zu tun, sondern nur damit das PCap die Daten zur Anzeige "aufbereitet" - das kann bei Binärdaten nur in die Hose gehen... Und für gz bzw. gzip brauchst Du afaik nur die zLib. Das sind im Prinzip immer nur gepackte Datenströme. Erweiterte Inhaltsinformationen und (Verzeichnis-)Strukturen etc. sind bei gz ja überlicherweise in den den Tar-Containern (dies ist hier völlig unnötig - geht ja um die Daten von Webservern die gz'ed sind). Gruß Assertor |
Re: gzip-String "entpacken"???
Gibt es den eine Alternative zu WinPCap, die mir die Rohdaten liefern könnte? Aber komisch. Wireshark basiert auch auf WinPCap und zeigt die Daten an.
|
Re: gzip-String "entpacken"???
Hi,
Zitat:
![]() Dort stehen einige, die die Daten auch in HEX anzeigen, z.B. EtherSnoop, ipInterceptor, YATT oder der von mir genutzte SmartSniff. Ich nutze SmartSniff, weil dieser für Admins auch portabel einsetzbar ist ohne Installation. Bei beschränkten Accounts (Vista, UAC und normale Workstations etc) muß der halt per Rechtsklick -> Ausführen als (Administrator) gestartet werden. Klein und einfach. Ich hab das Package Dumping jetzt aber nicht getestet - das brauch ich so selten, geht ja meist nur ums Nachschauen, was wo richtig oder falsch läuft. Gruß Assertor |
Re: gzip-String "entpacken"???
Zitat:
Diese gezippte strings sind auch "chunked". Liegt mein Problem vielleicht daran, dass ich die Daten zuerst trennen und erst dann entpacken soll? |
Re: gzip-String "entpacken"???
Hi,
Zitat:
Sieh Dir mal die Beschreibung des ![]() Prinzip ist recht einfach, ein Chunked Block sieht so aus: Zitat:
Gruß Assertor |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz