Utilities for decoding a Dark December TCP capture on port 10001 and rendering an
interactive minimap of the player and entity/monster position candidates.
From the first quest capture:
- Traffic is TCP on port
10001. - Application frames use a 4-byte little-endian total length prefix.
- Bytes 4 and 5 are a small channel/header pair, commonly
01 00or01 01. - The useful body decodes with adjacent XOR over bytes after that 2-byte channel:
decoded[i] = raw_body[i] ^ raw_body[i + 1]
The current extractor detects:
- Player position candidate: S2C 41-byte frames whose decoded body starts
12 02 60 6d. - Entity/monster movement candidates: S2C 41-byte frames shaped as
12 <id> 86 01 00 00 00 46 11. - Coordinates are little-endian float32 values at decoded offsets
9and17. - An orientation-like float is at decoded offset
25.
Put a .pcapng capture next to the script, or pass its full path:
python darkdec_decoder.py "CAPTURA DARK DECEMBER PRIMERA QUEST.pcapng" --out darkdec_outputThe script writes:
darkdec_output/minimap.htmldarkdec_output/decode_report.mddarkdec_output/player_track.csvdarkdec_output/entity_tracks.csvdarkdec_output/entities_summary.csvdarkdec_output/active_end_entities.csvdarkdec_output/frame_lengths.csvdarkdec_output/decoded_frame_samples.txt
Open minimap.html in a browser and use the timeline slider to inspect movement.
minimap-sniffer/ contains a Rust + egui minimap for live Windows captures
through Npcap/WinPcap-compatible pcap. A browser view remains available for
debugging.
cd minimap-sniffer
powershell -ExecutionPolicy Bypass -File .\run-egui.ps1 -ListDevices
powershell -ExecutionPolicy Bypass -File .\run-egui.ps1 -Iface "Realtek" -Port 10001It can also replay the committed TCP stream export:
cargo run --release --no-default-features --features egui -- --offline-stream-dir ..\streams\first_questRaw captures are intentionally ignored by .gitignore. They may contain IPs,
session data, account-adjacent metadata, or gameplay traces. Keep captures local
unless you explicitly want to publish them.