#!/usr/bin/env python3 """ e1_analyze.py — Анализирует извлечённые потоки: сжатие, тип данных """ import os import re import zlib STREAMS_DIR = "hbk_streams" for fname in sorted(os.listdir(STREAMS_DIR)): if fname.startswith("_") or fname.endswith(".meta"): continue path = os.path.join(STREAMS_DIR, fname) with open(path, "rb") as f: raw = f.read() print(f"\n{'=' * 60}") print(f" {fname} ({len(raw):,} байт)") print(f" head: {raw[:32].hex(' ')}") # Пробуем zlib try: dec = zlib.decompress(raw) print(f" → zlib OK: {len(dec):,} байт распаковано") print(f" head: {dec[:64]}") out = os.path.join(STREAMS_DIR, fname + ".deflated") with open(out, "wb") as f: f.write(dec) except zlib.error: print(f" → не zlib") # Ищем строки strings = re.findall(rb"[\x20-\x7e]{8,}", raw[:4096]) if strings: print(f" ASCII строки (первые 5):") for s in strings[:5]: print(f" {s.decode('ascii')}") utf = re.findall(rb"(?:[\x20-\x7e]\x00){4,}", raw[:4096]) if utf: print(f" UTF-16LE строки:") for s in utf[:5]: print(f" {s.decode('utf-16-le')}")