Safari 5.1 Cookie-Formatspezifikationen

7

Die Art der Speicherung von Cookies für SAFARI hat sich mit SAFARI 5.1 geändert und dass sie eine Art Integritätskontrollcode hinzufügen in den letzten 8 Bytes der Datei:

Die Datei ist% APPDATA% \ Apple Computer \ Safari \ Cookies \ Cookies.binarycookies

Weiß jemand, was den letzten 8 Bytes entspricht?

CRC32 prüfen?

Bitte helfen Sie

    
user382591 25.09.2011, 13:46
quelle

5 Antworten

17

Cookie.binarycookies:

Ich denke, das wird hilfreich sein. Ich habe die Datei mit einem Hex-Editor umgekehrt und beginne, die Cookies zu ändern.

Allgemeine Beschreibung:

Die Datei besteht aus mehreren Seiten, die jeweils ein oder mehrere Cookies enthalten können. Jede Seite hat eine Kopfzeile, die variabel ist, 0x10, 0x14 und 0x1c sind gemeinsame Werte, die wir sehen können.

Datei:

Die Datei beginnt mit einem 4-Byte-Header, der nicht von Interesse ist.

Die nächsten 4 Bytes sind wirklich interessant, weil sie die Anzahl der Seiten in der Datei angeben.

Dann haben wir die Länge jeder Seite, auch dargestellt durch eine 4-Byte-Nummer. Es ist wichtig zu wissen, dass all diese Zahlen in Big-Endian geschrieben sind. Also, wir haben 4 * Anzahl der Seiten von Bytes und dann die Seiten.

Wir haben 8 Bytes am Ende, die auch nicht von Interesse sind.

Seite:

Jede Seite hat eine Kopfzeile, deren Länge sich von einer Seite zur anderen ändern kann. Um die Länge des Headers zu kennen, müssen wir die ersten fünf Bytes verwerfen, und die nächsten 4 Bytes geben die Länge des Headers an.

Nach dem Header wird die Länge des Cookies durch 4 Bytes repräsentiert, geordnet in Little-Endian! Diese Länge enthält auch die 4 Bytes, die zum Darstellen der Länge benötigt werden.

Wenn dieser Cookie endet, wird ein anderer gestartet und so weiter bis zum Ende der Seite.

Cookie:

Das Datum jedes Cookies beginnt bei 0x2B. Das Datum besteht aus 4 Bytes, die in Little-Endian geordnet sind. Das Datum wird in Sekunden, aber nicht seit der Epoche dargestellt, also müssen wir diese Zahl subtrahieren: 1706047360. (Es funktioniert nur bis zu einem Tag im Jahr 2017)

Das nächste Interessenfeld beginnt bei 0x38. Diese Felder sind dynamische Felder, daher sind sie durch ein NULL-Byte "0x00" getrennt und haben folgende Reihenfolge: Name, Wert, URL, Pfad.

Beispiel:

Ссылка

Die Länge des gesamten Cookies ist 0x82. Neben diesem Cookie wird ein weiterer in genau demselben Format gestartet, wenn er der Seitenlänge entspricht.

    
AGG88 19.10.2011, 05:03
quelle
3

Das wird Ihre Frage nicht genau beantworten, aber hoffentlich kommt es zu dem, was Sie versuchen zu tun.

Sie können den Inhalt der Binär-Cookie-Datei unter ~/Library/Cookies/Cookies.binarycookies mit der Klasse NSHTTPCookieStorage lesen, wie im folgenden Code-Schnipsel gezeigt:

%Vor%     
pwc 04.10.2011 15:31
quelle
2

Ich habe ein MacRuby-Skript geschrieben, um das zu tun, wonach Sie suchen:

Ссылка

%Vor%

Sie müssen MacRuby installieren, aber dann werden Ihre Cookies im CSV-Format ausgedruckt. Es kann leicht gemacht werden, cookies.txt kompatibel zu sein.

    
sgonyea 22.11.2011 06:06
quelle
1

Ich habe einen Parser für Swift geschrieben, der das für dich tun kann. Ich brauchte das, weil NSHTTPCookieStorage.sharedHTTPCookieStorage() Ihnen keinen Zugriff auf die globalen Cookies gibt, wenn Sie eine Sandbox erstellen.

Ссылка

Sie können es so verwenden

%Vor%

Gegenwärtig gibt es ein paar Projekte, die dies auch in anderen Sprachen tun können:

Chad Scira 18.08.2015 12:55
quelle
0

Ich habe gerade eine Liste von URLs von:      $ strings Cookies.binarycookies | grep '^A\.' | uniq

    
BillyBuggy 09.11.2015 22:01
quelle

Tags und Links