您可以在这里看到该文件。
我认为他们正在使用某种LZRW 1带有一些奇怪的字典构建例程。
我成功地正确解压缩了文件的
IHeader
(我用CRC进行了验证)。它们之间的比较:
这是它使用的算法:
每8个字节有一个1字节的标志。
如果标志是> 0,我正在检查其位。 br />例如:
08 (0000 1000) 00 00 02 58 (00 83) 5A 08 06
标志是
08
=> 0000 1000
,所以它需要在标志=>
00 83
后向前5步.... 该字典似乎由2个字节构成,例如:
00 83
以二进制形式:
0000 0000 1000 0011
从右边开始的前4位可能是长度,而其余部分(12位) )可能是绝对偏移。
偏移长度
(0000 0000 1000) (0011)
我看在第一个大块字典(
0x0 0x83
)之后查看下一个标志,并看到一个新的字典(0x9 0x84
),但效果不佳: 这是我的算法收到的“最佳”结果:
我的算法伪代码:
data = readFile(filePath)
i = 0
while i < len(data):
controlbits = data[i] // controlbits is 8 bites
i += 1
for bit in controlbits:
if bit == 0:
output += data[i]
i += 1
else: // bit is 1
// Example: data[i] = 0x0, data[i+1] = 0x83
// data[i] = 0000 0000
// data[i+1] = 1000 0011
// dict = 0000 0000 1000 0011
dict = data[i] << 8
dict |= data[i+1]
offset = dict[0:12]
len = dict[12:16]
output += output[offset: offset+len]
i += 2
我在开头给出了完整文件内容的链接,但您也可以在此处找到文件中的570个字节:
0000-0010: 00 89 50 4e-47 0d 0a 1a-0a 00 00 00-00 0d 49 48 ..PNG... ......IH
0000-0020: 44 52 08 00-00 02 58 00-83 5a 08 06-80 00 83 64 DR....X. .Z.....d
0000-0030: 31 28 fe 00-00 21 00 c7-49 44 41 54-78 9c ed 00 1(...!.. IDATx...
0000-0040: dd 79 54 14-57 fa 37 f0-00 6f 2f ac-22 8d a2 20 .yT.W.7. .o/."...
0000-0050: 41 00 40 82-4b 5c 23 2e-e8 24 00 ae-e8 88 1a b5 A.@.K\#. .$......
0000-0060: d1 38 81 00-18 46 09 82-26 26 18 67-00 8c fa 33 .8...F.. &&.g...3
0000-0070: a2 a2 a3 31-06 00 c6 2d-1a 15 63 3c-2a d1 00 18 ...1...- ..c<*...
0000-0080: 25 c6 65 cc-28 51 8f 00-21 6a 30 1a-11 a2 a0 c6 %.e.(Q.. !j0.....
0000-0090: 00 05 d4 38-80 2c 8d 46-a1 00 e9 a6-de 3f 3c f4 ...8.,.F .....?<.
0000-00a0: 4b 2d 00 dd-54 77 57 43-8b cf e7 00-1c ce a1 aa K-..TwWC ........
0000-00b0: 6e df ba d5-00 b5 3d 5d-f7 d6 bd 32-86 00 61 18 n.....=] ...2..a.
0000-00c0: 10 42 08 21-84 10 02 c9-c8 1b bb 00-84 09 84 4d .B.!.... .......M
0000-00d0: 08 0d 05 58-84 09 84 12-a3 00 41 8b-09 84 44 62 ...X.... ..A...Db
0000-00e0: 14 60 11 09-94 08 48 8c-02 2c 09 95-89 51 80 42 .`....H. .,...Q.B
0000-00f0: 45 09 a4 22-31 0a b0 09-a4 42 08 24-46 01 16 09 E.."1... .B.$F...
0000-0100: b3 42 88 c4-09 28 c0 22-84 09 83 91-18 0a 63 ff .B...(." ......c.
0000-0110: 09 84 0a 94-09 84 0a d5-09 94 0b 24-09 95 0b 64 ........ ...$...d
0000-0120: fe 09 a4 0b-a4 09 a4 0b-e5 09 b3 0c-37 09 83 91 ........ ....7...
0000-0130: 7f 18 0a 63-09 84 0a 94-09 84 0a d5-09 94 0b 24 ...c.... .......$
0000-0140: ff 09 95 0b-64 09 a4 0b-a4 09 a4 0b-e5 09 b3 0c ....d... ........
0000-0150: 37 80 09 83-91 98 52 ea-0c 1f 3f 00-7e 8c 07 0f 7.....R. ..?.~...
0000-0160: 1e a0 b2 b2-00 12 1e 1e-1e 68 d9 b2-25 00 94 4a ........ .h..%..J
0000-0170: c9 57 d3 24-65 66 00 66-e2 f4 e9 d3-b8 7b f7 00 .W.$ef.f .....{..
0000-0180: 2e 34 1a 0d-00 60 eb d6-00 ad 8d 5c-2a 22 25 3a .4...`.. ...\*"%:
0000-0190: 3f 00 08 21-f6 aa b4 b4-14 a9 00 a9-a9 d0 68 34 ?..!.... ......h4
0000-01a0: 18 37 6e 00-1c 5e 7e f9-e5 c6 2e 92-00 64 0a 0a .7n..^~. .....d..
0000-01b0: 0a b0 68 d1-22 00 38 38-38 40 a5 52-a1 43 00 87 ..h.".88 8@.R.C..
0000-01c0: 0e 18 3c 78-30 5e 7a 00-e9 25 9b ad-53 c6 30 0c ..<x0^z. .%..S.0.
0000-01d0: 00 63 6d 26-85 85 85 d8-b0 00 61 03-d2 d2 d2 90 .cm&.... ..a.....
0000-01e0: 97 97 00 87-9a 9a 1a c3-32 85 42 00-81 4e 9d 3a ........ 2.B..N.:
0000-01f0: 61 e9 d2 a5-01 78 fd f5-d7 59 9f 1b-11 33 00 ae a....x.. .Y...3..
0000-0200: 5d bb 66 32-ef bf fd 00-ed 6f f8 d7-bf fe 65 6d ].f2.... .o....em
0000-0210: 00 11 ed da-d9 b3 67 31-7d 00 fa 74-e4 e4 e4 b0 ......g1 }..t....
0000-0220: e6 2b 00 14-0a e8 74 3a-ab f3 1f 00-38 70 20 8a .+....t: ....8p..
0000-0230: 8b 8b 0d d3-00 cb 96 2d-c3 c4 89 13-ad 00 ce 97 .......- ........
0000-0240: 88 63 e9 f9-41 48 00 53-b1 62 c5 0a-6c df be 00 .c..AH.S .b..l...
0000-0250: dd 30 fd ca-2b af e0 cb-00 2f bf 6c-c4 12 11 ae .0..+... ./.l....
0000-0260: a2 00 a2 22-04 07 07 e3-8f 3f 80 01-a3 28 95 4a ...".... .?...(.J
0000-0270: 7c f7 dd 77-00 78 ed b5-d7 1a bc 2c-fb 00 f7 ef |..w.x.. ...,....
0000-0280: c7 fc f9 f3-0d d3 00 ad-5b b7 46 46-46 86 55 00 ........ [.FFF.U.
0000-0290: 79 66 65 65-21 38 38 98-00 37 ff af-7f fd 2b b6 yfee!88. .7....+.
0000-02a0: 6c 00 d9 82-80 80 00 ab-f2 17 00 62-f5 4f e7 a3 l....... ...b.O..
0000-02b0: 47 8f 62 00-d2 a4 49 28-2d 2d 15 5c-00 ae d7 eb G.b...I( --.\....
0000-02c0: 71 e5 ca 15-5c 00 bf 7e-9d b7 ec e6-cd 9b 00 b8 q...\..~ ........
0000-02d0: 7a f5 aa c9-fc ef df 20-bf 6f 17 33-5a 46 46 06 z....... .o.3ZFF.
0000-02e0: 86 00 0f 1f-0e ad 56 6b-b3 75 a0 21-23 1d 14 03 ......Vk .u.!#...
0000-02f0: 86 e9 f2 f2-72 00 9b ad-ab a1 dd be-7d 1b 00 27 ....r... ....}..'
0000-0300: 4e 9c 40 68-68 28 da 00-b5 6b d7 d8-c5 e1 b1 e6 N.@hh(.. .k......
0000-0310: 10 fc 78 56-23 c4 f7 ee-dd 43 00 71-71 31 b4 5a ..xV#... .C.qq1.Z
0000-0320: 2d dc dd 00-dd 11 10 10-80 f6 ed db-00 c3 c1 c1 -....... ........
0000-0330: a1 d1 cb 66-cf 02 c7 8b-bd 97 cf 52-14 03 ac 00 ...f.... ...R....
0000-0340: 6b 7d db b6-6d 1b b1 34-00 44 c8 fa-f5 eb 0d c1 k}..m..4 .D......
0000-0350: 15 40 00 18-63 24 26 26-36 4a 80 00-a5 d1 68 58 .@..c$&& 6J....hX
0000-0360: c7 8b 2d ef-00 59 e9 e9-e9 08 09 09-c1 00 85 0b ..-..Y.. ........
0000-0370: 17 24 3f 2e-ad 6a 00 83-95 9d 9d 8d-f1 e3 c7 00 .$?..j.. ........
0000-0380: 1b bd 79 10-d3 f4 7a 3d-00 a2 a3 a3-79 c1 55 bb ..y...z= ....y.U.
0000-0390: 76 00 ed 30-62 c4 08 7a-a2 61 00 44-69 69 29 e2 v..0b..z .a.Dii).
0000-03a0: e2 e2 10 00-14 14 84 c0-c0 40 4c 9d-00 3a 15 77 ........ .@L..:.w
0000-03b0: ef de 6d ec-62 00 f1 3c-4f e7 c7 ef-bf ff 00 8e ..m.b..< O.......
0000-03c0: 19 33 66 20-30 30 10 00-81 81 81 18-30 60 00 c6 .3f.00.. ....0`..
0000-03d0: 00 8f 1f 8f-88 88 08 8c-1a 00 35 0a-5d ba 74 81 ........ ..5.].t.
0000-03e0: 4a a5 40 42-24 43 16 2f-5e 8c c7 8f-00 1f 37 58 J.@B$C./ ^.....7X
0000-03f0: d9 ec fd 78-b1 00 f7 f2-d9 9b e4 e4-64 38 00 3b ...x.... ....d8.;
0000-0400: 3b 1b fe ba-76 ed 6a 00-32 bd 46 a3-61 a5 77 76 ;...v.j. 2.F.a.wv
0000-0410: 00 76 c6 c9-93 27 1b a8-b4 00 cf 8e-ba 3f c2 6b .v...'.. .....?.k
0000-0420: fd ef 04 7f-ff 13 fd f9-29 d3 9a b5-00 5f 1a 9a ........ )...._..
0000-0430: 87 87 07 5e-7f 00 fd 75-0c 1e 3c 18-5e 5e 00 5e ...^...u ..<.^^.^
0000-0440: ac 65 45 45-45 98 39 00-73 a6 e4 eb-b4 ea 09 d6 .eEEE.9. s.......
0000-0450: 00 9c 39 73-f0 e4 c9 13-d6 40 bc 12-b3 22 26 26 ..9s.... .@..."&&
0000-0460: 06 7e 7e 00-7e a8 a8 a8-40 51 51 11-00 ae 5c b9 .~~.~... @QQ...\.
0000-0470: 22 f8 6b 6c-c6 00 8c 19-28 2a 2a 62-cd 4b 00 49 ".kl.... (**b.K.I
0000-0480: 49 69 f2 4f-ad 6a 1d 00-3b 76 0c 37-6f de 34 4c Ii.O.j.. ;v.7o.4L
0000-0490: 08 3b 3a 3a-62 25 33 98-30 61 00 42-23 96 ca fe .;::b%3. 0a.B#...
0000-04a0: 15 15 15 00-e1 8b 2f be-68 ec 62 d4-00 cb da f3 ....../. h.b.....
0000-04b0: e3 59 a0 d5-6a 00 31 7b-f6 6c 6c da-b4 a9 00 de .Y..j.1{ .ll.....
0000-04c0: ea ec 27 4f-9e e0 e4 02-c9 93 38 79-f2 24 2c 93 ..'O.... ..8y.$,.
0000-04d0: e0 00 ea ea-da 20 65 b4-f7 e3 00 c5-de cb 67 6f ......e. ......go
0000-04e0: 74 3a 1d 00-aa aa aa 0c-d3 75 ff 17-00 c2 30 0c t:...... .u....0.
0000-04f0: 2f 8d 5e af-b7 00 49 d9-9e 65 61 61-61 48 00 49 /.^...I. .eaaaH.I
0000-0500: 49 61 cd 1b-35 6a 94 02-e8 cf 57 57-57 9b 34 23 Ia..5j.. ..WWW.4#
0000-0510: 5a 80 2b b3-b0 6f df 3e-00 40 4d 10-4d 0d fe 33 Z.+..o.> .@M.M..3
0000-0520: a3 63 ee dc-b9 00 86 e5-07 0e 1c c0-fd fb 00 f7 .c...... ........
0000-0530: e1 e3 e3 23-d9 3a 2d 00-0e b0 4a 4a-4a f0 c3 0f ...#.:-. ..JJJ...
0000-0540: 00 3f b0 e6-4d 9b 36 0d-9b 00 37 6f-16 9d c7 8c .?..M.6. ..7o....
0000-0550: 19 33 00 78-f3 0e 1f 3e-fc dc 04 00-58 a7 4f 9f .3.x...> ....X.O.
0000-0560: 66 4d c7 c7-00 c7 53 70-d5 44 48 71-7e 20 d8 bb fM....Sp .DHq~...
评论
可以肯定的是您已经想到了这一点,但是是否还有其他压缩示例?可能是纯文本,XML文件,也可能是未经压缩的文件。这样可以更容易地猜出词典是如何构建的。不幸的是,这不是因为它是CTF的一部分,而面临的挑战是在不了解压缩的情况下找出解压缩算法。您只需要查看压缩图像就可以弄清楚。 PNG具有标准标头,因此应该是线索,因为我已经展示了如何找出原始标头,但我们还需要在数据上进行操作。