Skip to content

Instantly share code, notes, and snippets.

@nekkk
nekkk / refpack.py
Created September 26, 2025 11:52
refpack python implementation
import sys
import os
class RefPackDecoder:
@staticmethod
def get_big_endian_word(data, offset):
return (data[offset] << 8) | data[offset + 1]
@staticmethod
def get_big_endian_dword(data, offset):
@nekkk
nekkk / aplib.py
Created August 1, 2025 16:26
aplib.py
#!/usr/bin/env python3
"""
Implementação ajustada do algoritmo aPLib (compressão e descompressão) em Python 3.
Baseada no código de referência do Kabopan e na implementação oficial:
https://github.com/snemes/aplib/blob/master/src/aplib.py
Principais ajustes:
• Uso de bytearray para o buffer de saída na máquina de bits (evita erros de imutabilidade)
• Manutenção exata da lógica de números variáveis e marcação dos blocos
"""
70 A3 00 00 08 43 0F 00 14 00 00 00 54 41 4C 4B
5F 49 44 5F 30 30 31 30 5F 30 30 32 5F 30 30 00
00 00 00 00 00 00 00 00 3F 01 00 00 01 00 00 00
00 00 00 00 00 00 00 00 01 00 00 00 00 01 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00
00 00 00 01 00 00 00 00 01 00 00 00 00 01 00 00
00 00 01 00 00 00 00 01 00 00 00 00 00 00 00 00
C9 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00
import struct
import os
import hashlib
import aplib
import json
import shutil
from io import BytesIO
import tkinter as tk
from tkinter import filedialog, messagebox
This file has been truncated, but you can view the full file.
4B 50 4B 6C 00 00 00 00 10 00 00 00 00 10 00 00
11 B0 04 00 00 00 00 00 00 00 00 00 00 00 00 00
96 82 07 00 79 00 00 00 1F 0B 00 00 E4 0A 00 00
F9 0A 00 00 1A 0B 00 00 31 0B 00 00 FE 0A 00 00
EA 0A 00 00 15 0B 00 00 6D 0A 00 00 F7 08 00 00
26 09 00 00 C4 08 00 00 65 08 00 00 75 08 00 00
4B 06 00 00 45 08 00 00 B6 08 00 00 3F 0A 00 00
B2 0A 00 00 58 0A 00 00 E4 07 00 00 15 06 00 00
9E 02 00 00 DB 04 00 00 38 05 00 00 C2 05 00 00
AD 04 00 00 05 04 00 00 8F 04 00 00 4D 04 00 00
00 00 00 00 93 03 00 00 00 00 00 00 93 03 00 00
00 00 00 00 40 4C 00 00 0C 37 B6 00 7E 93 DD 00
A1 5C 5B 01 32 B1 F5 01 90 9C 1F 02 9D 26 6C 02
DD 5C BF 02 BB 24 20 03 F2 6B 51 03 63 D3 86 03
DF D1 17 04 6D 03 18 04 9B A8 2F 04 57 8A 38 04
8A 66 6C 04 74 52 B9 04 AB 0F 30 05 A8 D8 36 05
89 58 72 05 37 05 81 05 67 15 C8 05 AB C0 F4 05
62 51 25 06 83 4F 28 06 1E BB 5E 06 5D E6 17 07
62 0D 50 07 BF 10 CD 07 4E 95 7D 08 B4 AC F8 08
58 ED 07 09 C8 29 B6 09 7E DF F1 09 15 BF F3 09
00 00 00 00 93 03 00 00 00 00 00 00 93 03 00 00
00 00 00 00 68 4C 00 00 0C 37 B6 00 7E 93 DD 00
A1 5C 5B 01 32 B1 F5 01 90 9C 1F 02 9D 26 6C 02
DD 5C BF 02 BB 24 20 03 F2 6B 51 03 63 D3 86 03
DF D1 17 04 6D 03 18 04 9B A8 2F 04 57 8A 38 04
8A 66 6C 04 74 52 B9 04 AB 0F 30 05 A8 D8 36 05
89 58 72 05 37 05 81 05 67 15 C8 05 AB C0 F4 05
62 51 25 06 83 4F 28 06 1E BB 5E 06 5D E6 17 07
62 0D 50 07 BF 10 CD 07 4E 95 7D 08 B4 AC F8 08
58 ED 07 09 C8 29 B6 09 7E DF F1 09 15 BF F3 09
00 00 00 00 93 03 00 00 00 00 00 00 93 03 00 00
00 00 00 00 68 4C 00 00 0C 37 B6 00 7E 93 DD 00
A1 5C 5B 01 32 B1 F5 01 90 9C 1F 02 9D 26 6C 02
DD 5C BF 02 BB 24 20 03 F2 6B 51 03 63 D3 86 03
DF D1 17 04 6D 03 18 04 9B A8 2F 04 57 8A 38 04
8A 66 6C 04 74 52 B9 04 AB 0F 30 05 A8 D8 36 05
89 58 72 05 37 05 81 05 67 15 C8 05 AB C0 F4 05
62 51 25 06 83 4F 28 06 1E BB 5E 06 5D E6 17 07
62 0D 50 07 BF 10 CD 07 4E 95 7D 08 B4 AC F8 08
58 ED 07 09 C8 29 B6 09 7E DF F1 09 15 BF F3 09
46 4F 52 4B 02 01 03 00 00 00 03 00 01 00 04 01
00 00 00 3C 00 00 69 18 00 00 69 18 02 ED 04 00
00 00 69 54 00 00 00 24 00 00 00 24 00 00 04 00
00 00 69 78 00 00 00 28 00 00 00 28 00 00 00 00
93 03 00 00 00 00 00 00 93 03 00 00 00 00 00 00
68 4C 00 00 0C 37 B6 00 7E 93 DD 00 A1 5C 5B 01
32 B1 F5 01 90 9C 1F 02 9D 26 6C 02 DD 5C BF 02
BB 24 20 03 F2 6B 51 03 63 D3 86 03 DF D1 17 04
6D 03 18 04 9B A8 2F 04 57 8A 38 04 8A 66 6C 04
74 52 B9 04 AB 0F 30 05 A8 D8 36 05 89 58 72 05
70 03 00 00 53 00 00 00 65 00 00 00 12 00 00 00
53 54 52 5F 49 44 5F 43 4F 4D 4D 4F 4E 5F 30 30
31 00 07 00 00 00 E3 81 AF E3 81 84 00 03 00 00
00 4F 4B 00 04 00 00 00 4F 75 69 00 01 00 00 00
00 01 00 00 00 00 01 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 56 00 00 00 66
00 00 00 12 00 00 00 53 54 52 5F 49 44 5F 43 4F
4D 4D 4F 4E 5F 30 30 32 00 0A 00 00 00 E3 81 84
E3 81 84 E3 81 88 00 03 00 00 00 4E 6F 00 04 00
00 00 4E 6F 6E 00 01 00 00 00 00 01 00 00 00 00