ZSTD: неизвестный дескриптор кадровPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 ZSTD: неизвестный дескриптор кадров

Сообщение Anonymous »

У меня есть двоичный файл, который, по -видимому, изначально генерируется сериализацией Java Hashmap. Большая часть файла, по-видимому, является Zstandard-сжатым архивом: < /p>

Код: Выделить всё

00000000 28 B5 2F FD:00 58 9D 21|00 16 BC D4:4B B0 56 55
00000010 3A 52 74 EB:D5 B9 A7 C3|FD 38 04 39:ED EC 86 F3
00000020 C7 08 8F 4C:77 82 FA D7|10 47 EC 77:73 23 B7 D0
00000030 E6 D0 27 01:D9 08 D4 F5|37 52 38 66:1C 26 B1 71
00000040 0A 24 95 8B:A4 26 58 B6|C5 8D 0B 92:36 A5 F0 D2
00000050 D1 15 BC F7:D7 FF 4F 01|BE 00 BC 00:C2 00 17 F0
00000060 DF C5 04 F3:FF BF 60 41|58 EC A1 2A:70 BD 18 98
00000070 C9 9B 58 CD:3C 7B EB 59|15 7D FD A6:FA 6A 09 0A
00000080 03 46 8A 3C:01 C0 12 DA|1C 70 B5 1C:4A F4 CC C4
< /code>
Здесь мы можем четко увидеть магические байты для ZSTD - 28 BF 2F FD.  Я осмотрел весь файл в Hexedit, появляется несколько экземпляров магических байтов ZSTD, предполагая, что, возможно, есть несколько сораковых архивов в этом файле.zstandardblock.zst   : 0 B...     zstd: zstandardblock.zst: unsupported format

Я использовал эту программу Python, чтобы попробовать декодировать ее кусочками:
import zstandard as zstd

def decompress_until_error(input_file, output_prefix, chunk_size=65536):
"""Decompress a Zstd file in large chunks until an error occurs, writing each chunk to separate files."""
with open(input_file, "rb") as compressed:
dctx = zstd.ZstdDecompressor()
reader = dctx.stream_reader(compressed)
chunk_index = 0
try:
while True:
chunk = reader.read(chunk_size)
if not chunk: # Stop if no more data
break
# Check for skippable frame marker (0x184D2A50)
if chunk[:4] == b'\x50\x2A\x4D\x18':
print(f"Skippable frame detected at chunk {chunk_index}, skipping...")
continue
output_file = f"{output_prefix}_{chunk_index}.bin"
with open(output_file, "wb") as f:
f.write(chunk)
print(f"Chunk {chunk_index}: {len(chunk)} bytes written to {output_file}")
chunk_index += 1
except zstd.ZstdError as e:
print(f"Zstandard error encountered after {chunk_index} chunks: {e}")
except Exception as e:
print(f"Unexpected error encountered after {chunk_index} chunks: {e}")
print("Decompression halted due to an error.")

# Example usage
decompress_until_error("zstandardblock.zst", "final_output")
< /code>
Просто базовая программа для чтения файла. Достаточно любопытно, что я смог извлечь развращенный хэшмап Java, поэтому этот блок ZSTD содержит некоторые данные. Однако скрипт заканчивается этой ошибкой: < /p>
Chunk 0: 2098 bytes written to final_output_0.bin
Zstandard error encountered after 1 chunks: zstd decompress error: Unknown frame descriptor
Decompression halted due to an error.
< /code>
Я уверен, что этот архив содержит полезную информацию. Есть ли флаг или настройка для ZSTD или какой -то способ для меня усекнуть или изменить двоичные данные, распаковывать их? двоичные и выходные файлы все там.


Подробнее здесь: https://stackoverflow.com/questions/796 ... descriptor
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • ZSTD: неизвестный дескриптор кадров
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Чтение недавно добавленного содержимого из сжатого файла журнала (log4j) с использованием потока фильтрации Zstd Boost
    Гость » » в форуме C++
    0 Ответы
    33 Просмотры
    Последнее сообщение Гость
  • AttributeError: объект «zstd.ZstdDecompressionReader» не имеет атрибута «fileno».
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Запросы Python отключить кодирование ZSTD
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Запросы Python отключить кодирование ZSTD
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»