How nepoowen/trove-xigncode-heartbeat works
Trove Xigncode is a native Windows DLL that intercepts XIGNCODE3 challenge traffic in the running game process and computes the A3 response offline. The documented workflow starts at DLL loading, freezes other threads during setup, installs socket and challenge-dispatcher hooks, captures A2, decodes its daily key, computes the MACs, and returns A3 through the intercepted handshake. The graph reflects README-documented stages where source excerpts are incomplete; it does not infer unspecified hook wiring.
Main entry points: challenge.hpp Hook initialization · main.cpp Setup thread · MinHook.h MinHook library
Components 16
DLL bootstrap
- DLL entry
project/src/main.cpp - Setup thread
project/src/main.cpp - Thread freeze
project/src/challenge.hpp
Traffic interception
- Hook initialization
project/src/challenge.hpp - Socket hooks
project/src/challenge.hpp - Challenge dispatcher hook
project/src/challenge.hpp
Challenge solver
- A2 challenge
project/src/challenge.hpp - Daily key decoding
project/src/challenge.hpp - M1 M2 MACs
project/src/challenge.hpp - A3 response
project/src/challenge.hpp
Hooking and safety
- Failure handling
project/src/challenge.hpp - MinHook library
project/minhook/include/MinHook.h
Other components
- Trove process
- ws2_32 socket APIs
- XIGNCODE3 client
- XEM file
Connections 20
- Trove process → DLL entry: loads DLL
- DLL entry → Setup thread: starts thread
- Setup thread → Thread freeze: freezes threads
- Setup thread → Hook initialization: calls
- Setup thread → Thread freeze: unfreezes threads
- Hook initialization → XEM file: checks size
- Hook initialization → Failure handling: on size mismatch
- Hook initialization → Socket hooks: installs
- Hook initialization → Challenge dispatcher hook: hooks dispatcher
- Socket hooks → MinHook library: uses
- Challenge dispatcher hook → MinHook library: uses
- Socket hooks → ws2_32 socket APIs: intercepts
- XIGNCODE3 client → ws2_32 socket APIs: exchanges traffic
- Challenge dispatcher hook → A2 challenge: captures
- A2 challenge → Daily key decoding: decodes
- Daily key decoding → M1 M2 MACs: provides key
- A2 challenge → M1 M2 MACs: provides timestamp
- M1 M2 MACs → A3 response: computes
- Socket hooks → A3 response: returns A3
- Failure handling → Trove process: terminates process