2011-07-04 5 views
0

Je viens de perdre quelques jours de travail à un éditeur qui tombe en panne. Mon fichier est maintenant un fichier vide et la dernière sauvegarde date de 4 jours.Comment puis-je reconstituer un fichier texte enregistré dans un cache de navigateur, gzippé?

J'ai le fichier CSS enregistré dans mon cache de Chrome, mais il ressemble à ceci:

http://myserver.example.com/style.css
HTTP/1.1 200 OK
Date: Mon, 04 Jul 2011 05:18:25 GMT
Last-Modified: Mon, 04 Jul 2011 01:10:47 GMT
Vary: Accept-Encoding,User-Agent
Content-Encoding: gzip
Content-Length: 7588
Content-Type: text/css
00000000: 5e 01 00 00 02 08 00 00 be 45 ba c7 cd 05 2e 00 ^........E......
00000010: 25 68 d9 c7 cd 05 2e 00 1d 01 00 00 48 54 54 50 %h..........HTTP
00000020: 2f 31 2e 31 20 32 30 30 20 4f 4b 00 44 61 74 65 /1.1 200 OK.Date
00000030: 3a 20 4d 6f 6e 2c 20 30 34 20 4a 75 6c 20 32 30 : Mon, 04 Jul 20
00000040: 31 31 20 30 35 3a 31 38 3a 32 35 20 47 4d 54 00 11 05:18:25 GMT.
(etc)
00000000: 1f 8b 08 00 00 00 00 00 00 03 cd 3d fd 8f db b6 ...........=....
00000010: 92 3f d7 7f 05 2f 8b 22 ed c2 f2 87 fc b1 6b 2f .?.../."......k/
00000020: 1a a0 09 5e 1e f0 5e 7b 57 34 c5 dd 0f 87 83 21 ...^..^{W4.....!
00000030: db f2 5a 89 6c f9 49 72 36 5b 63 ff f7 e3 b7 86 ..Z.l.Ir6[c.....
00000040: e4 50 1f 9b 4d ef 52 34 b1 65 71 66 38 1c ce 0c .P..M.R4.eqf8...
00000050: 87 c3 e1 f0 9a fc e3 9c 1e c9 3f e2 94 fc b1 8f ..........?.....

Le fichier entier semble être là, et je peux obtenir le texte.

Je voudrais récupérer le fichier CSS ordinaire en quelque sorte. J'ai essayé d'extraire les données, mais gzip dit que ce n'est pas le format gzip. Mais il ne semble pas être encodé en gzip (ce n'est pas binaire, après tout ...). Est-ce base64 ou quelque chose? J'ai eu du mal à trouver des informations à ce sujet.

+0

Serait-ce un fichier gzip * précédé * d'un en-tête de texte: 'HTTP/1.1 200 OK ...' – pavium

+0

@pavium oui, les données dans le cache chromé sont divisées en deux parties - une pour l'en-tête, et un pour les données gzippées. – Cole

+0

Mais 'gzip' ne reconnaît pas les données gzippées? – pavium

Répondre

1

Essayez de trouver l'en-tête gzip en extrayant les données hexagonales dans un éditeur et la recherche de l'en-tête selon gzip specification. Vous devriez être capable de le faire en trouvant la fin du corps de la réponse et en sélectionnant les 7588 octets précédents (vous avez cette information dans les en-têtes de réponse: Content-Length: 7588) - cela devrait être le premier caractère de l'en-tête.

Selon les indicateurs définis dans l'en-tête, les fichiers gzip peuvent être ASCII ou binaire. Vous pouvez déterminer si les données sont codées en base64 car les codages de schéma de base64 se terminent par le caractère =. Vous pouvez décoder base64 online.

Sinon, vous pouvez essayer un outil tel que ChromeCacheViewer.

+0

J'ai essayé, mais pour certains raison gzip dit que les données sont corrompues ... et ChromeCacheViewer est Windows uniquement. Cependant, j'ai été capable d'utiliser l'outil IE de nirsoft pour obtenir une copie du fichier à partir du cache IE d'une autre machine. Merci pour l'aide. – Cole

+0

Excellentes nouvelles! Bien joué;) – Andy

1

Le fichier ressemble à gzip. Il a l'en-tête 1f8b. Chrome stocke les fichiers mis en cache en tant que fichiers, vous avez juste besoin de les trouver. Google pour "emplacement de cache chromé" et le trouver pour votre plate-forme.

+0

Cela devrait être la clé, mais pour une raison quelconque, je ne trouve pas le fichier dans le répertoire de Chromium! Merci pour la suggestion cependant, je vais le faire fonctionner. – Cole

Questions connexes