osg*_*sgx 2 compression opera computer-forensics opera-turbo
我有一个启用了"Opera Turbo"的Opera浏览器.它是一个代理,它将HTML重新压缩为更小的格式.我有一个来自opera cache的文件,它被turbo从2000 kb压缩到500 kb.如何将此文件解压缩为可读形式(原始文件几乎没有html标签,只有8位文本," <p>"标签和html页眉/页脚)?
以下是此类文件的示例:
.opera$ hexdump -C cache/turbo/g_0000/opr00003.tmp
00000000 78 da 6c 8f bf 4e c4 30 0c c6 67 fa 14 26 48 6c |x?l?©N?0.?g?.&Hl|
00000010 a1 1c 12 d3 25 1d f8 37 82 54 f1 02 69 63 48 74 |?..?%.?7?T?.icHt|
00000020 69 52 12 97 d2 b7 ed 88 40 80 b8 05 06 06 7a 57 |iR.?????@??...zW|
00000030 09 21 84 27 fb f3 cf 9f 6d 61 a8 71 45 26 0c 2a |.!?'???÷ma?qE&.*|
00000040 5d 64 3b a2 41 52 60 88 5a 8e 77 9d bd 97 ec 34 |]d;?AR`?Z?w²???4|
00000050 78 42 4f fc 7a 68 91 41 3d 57 92 11 3e 50 be 99 |xBO?zh?A=W?.>P??|
00000060 5d 42 6d 54 4c 48 b2 b7 5e 87 3e f1 c5 d1 f1 82 |]BmTLH??^?>?????|
00000070 fd 78 79 d5 a0 64 1a 53 1d 6d 4b 36 f8 5f 26 ef |?xy??d.S.mK6?_&?|
00000080 eb 71 fd f5 f8 97 5d e1 d0 87 a8 d3 ff 20 59 72 |?q????]?????? Yr|
00000090 58 94 5d 4a 56 41 f0 40 06 e1 12 09 f6 1b ad 92 |X?]JVA?@.?..?.??|
000000a0 59 c2 8c 8a 7c e6 32 91 cf 9f 09 67 fd 0a 22 3a |Y???|?2??÷.g?.":|
...
Run Code Online (Sandbox Code Playgroud)
这是原始文件的一部分(我不确定它是否是真正的原始文件,但很可能是):
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<meta name="description" content="??????">
<meta name="keywords" content="??????">
<title>Russia on the Net — ??????</title>
</head>
<link rel="stylesheet" href="/rus/style.css">
<body bgcolor="#FFFFFF">
<center>
...
Run Code Online (Sandbox Code Playgroud)
压缩文件的大小为3397,原始大小为8913字节.原始文件可通过bzip2压缩到3281字节; 通过gzip到3177字节; 由lzma到2990字节; 由7z到3082字节; 通过zip到3291字节.
更新:我有信息(来自chrome opera-mini扩展名http://ompd-proxy.narod.ru/distrib/opera_mini_proxy.crx-用7-zip解压缩)opera mini用它来解压缩数据webodf/src/core_RawInflate .js这个文件可以帮助我吗?
前两个字节78 DA是有效的2字节zLib标头(参见关于CMF和FLG的2.2节),它在压缩压缩数据之前.因此可以使用zLib/deflate压缩文件.
对于第一个快速测试,您可以使用我的命令行工具Precomp,如下所示:
precomp -v -c- -slow opr00003.tmp
Run Code Online (Sandbox Code Playgroud)
它将报告zLib压缩流以及它们的解压缩程度("...可以解压缩为......字节").如果成功(返回接近您所知的原始文件大小的解压缩大小),请使用您喜欢的编程语言和zLib库来解压缩数据.
另请注意,如果幸运的话,可以通过Precomp对流(或其中的一部分)进行逐位相同的重新压缩,并且输出文件opr00003.pcf包含(一部分)解压缩数据,前面是小标头.
编辑:正如osgx评论和进一步分析所示,数据无法使用zLib/deflate解压缩,因此这仍然是一个未解决的案例.
EDIT2:更新,特别是链接的JS显示它是 deflate,但它似乎是一些自定义变体.与原始代码的比较可以帮助以及与原始zLib源代码进行比较.
此外,JS代码当然可以用于尝试解压缩数据.但它似乎没有处理2字节标题,因此可能必须跳过这些标题.