mirror of
https://github.com/LCE-Hub/LCE-Emerald-Launcher.git
synced 2026-07-18 08:17:23 +00:00
29 lines
755 B
Python
29 lines
755 B
Python
import zlib
|
|
|
|
def decode_varint(data, offset=0):
|
|
val = 0
|
|
shift = 0
|
|
while True:
|
|
b = data[offset]
|
|
offset += 1
|
|
val |= (b & 0x7F) << shift
|
|
shift += 7
|
|
if (b & 0x80) == 0:
|
|
break
|
|
return val, offset
|
|
|
|
hex_str = "81 9b 01 78 9c ed 5b cd 92 db 44 10 9e 14 f9 71 9c 4a 41 48"
|
|
data = bytes.fromhex(hex_str.replace(" ", ""))
|
|
|
|
uncompressed_len, offset = decode_varint(data)
|
|
compressed_data = data[offset:]
|
|
|
|
d = zlib.decompressobj()
|
|
dec = d.decompress(compressed_data)
|
|
if dec:
|
|
pkt_id, dec_offset = decode_varint(dec)
|
|
print(f"Packet ID: {pkt_id} (0x{pkt_id:02x})")
|
|
print(f"Next bytes: {dec[dec_offset:dec_offset+10].hex()}")
|
|
else:
|
|
print("Could not decompress anything (need more bytes).")
|