2017-05-23 5 views
0

En premier lieu, les données de diffusion udp ont été capturées à l'aide de tcpdump, où l'un des paquets (tous les paquets similaires) ressemble à ceci.Décompressez les données hexadécimales en utilisant lz4

11:14:54.952531 IP (tos 0x0, ttl 64, id 20499, offset 0, flags [none], proto UDP (17), length 540) 
192.168.200.20.28190 > 233.1.2.5.28190: [udp sum ok] UDP, length 512 
0x0000: 4500 021c 5013 0000 4011 b4fa c0a8 c814 [email protected] 
0x0010: e901 0205 6e1e 6e1e 0208 500d 0220 0001 ....n.n...P..... 
0x0020: 00aa 1a02 595a 2a2a 3132 3300 4000 0546 ....YZ**[email protected] 
0x0030: 5573 ae00 001c 2b40 2802 01c9 2520 00e0 [email protected](...%... 
0x0040: 4c01 a2fd 3520 a002 00cc 0046 c1c2 000c L...5......F.... 
0x0050: 03b5 3b00 1b00 1f80 bc00 0896 bb80 41e6 ..;...........A. 
0x0060: 065b f100 0003 0002 0001 6da0 ffff feed .[........m..... 
0x0070: 0001 0000 4160 25e8 7e09 605d de40 7f00 ....A`%.~.`][email protected] 
0x0080: 79e0 4025 d960 4d2e 6025 d440 4e01 5a60 [email protected]%.`M.`%[email protected]` 
0x0090: 25f2 40ef 034b c040 27f7 0005 0026 3900 %[email protected]@'....&9. 
0x00a0: 5dfc 609d 5d40 4dff 001d 0400 4dfd 409c ].`.]@[email protected] 
0x00b0: 02ff 0641 1aa9 825c 0141 32f8 4060 1c61 ...A...\[email protected]`.a 
0x00c0: b460 fc61 3460 1c62 4c11 0000 0000 0000 .`.a4`.bL....... 
0x00d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 
0x00e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 
0x00f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 
0x0100: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 
0x0110: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 
0x0120: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 
0x0130: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 
0x0140: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 
0x0150: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 
0x0160: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 
0x0170: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 
0x0180: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 
0x0190: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 
0x01a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 
0x01b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 
0x01c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 
0x01d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 
0x01e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 
0x01f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 
0x0200: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 
0x0210: 0000 0000 0000 0000 0000 0000   ............ 

De là, en allant chercher le bloc de données, l'octet sage données compressées sont donnés ci-dessous qui est codée en utilisant l'algorithme de compression LZ4.

Toutes les suggestions sur la façon de décompresser et obtenir les données réelles, les données compressées ressemble à ceci.

0220 0001 00aa 1a02 595a 2a2a 3132 3300 4000 0546 5573 ae00 001c 2b40 2802 01c9 2520 00e0 4c01 a2fd 3520 a002 00cc 0046 c1c2 000c 03b5 3b00 1b00 1f80 bc00 0896 bb80 41e6 065b f100 0003 0002 0001 6da0 ffff feed 0001 0000 4160 25e8 7e09 605d de40 7f00 79e0 4025 d960 4d2e 6025 d440 4e01 5a60 25f2 40ef 034b c040 27f7 0005 0026 3900 5dfc 609d 5d40 4dff 001d 0400 4dfd 409c 02ff 0641 1aa9 825c 0141 32f8 4060 1c61 b460 fc61 3460 1c62 4c11 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 .... 
+0

Quel langage de programmation? –

+0

Vous cherchez une solution python, de préférence. –

+0

Une longue chaîne de zéros ne fait presque certainement pas partie d'un flux de données compressé. –

Répondre

2

Question: ... est codée en utilisant l'algorithme de compression LZ4. Toutes les suggestions sur la façon de décomprimer ...

Essayez ce module: python-lz4 Quickstart

La liaison est recommandé d'utiliser le format de trame LZ4. Le moyen le plus simple d'utiliser le package de cadres est d'importer les fonctions de compression et de décompression:

>>> import os 
>>> from lz4.frame import compress, decompress 
>>> input_data = os.urandom(20 * 128 * 1024) # Read 20 * 128kb 
>>> compressed = compress(input_data) 
>>> decompressed = decompress(compressed) 
>>> decompressed == input_data 
Out[6]: True