Kelsi
8378eb9232
fix: correct sync Warden MODULE check returning 0x01 instead of 0x00
...
The sync path's MODULE handler was returning 0x01 (module found) for
unwanted cheat DLLs (WPESPY, TAMIA, PRXDRVPE, etc.) instead of 0x00
(not found). Since VMaNGOS compares the result as a boolean, returning
any non-zero value for a cheat module tells the server "this cheat DLL
is loaded," triggering Warden penalties that accumulate into a kick
after ~3-5 minutes.
Also adds ±4KB hint window search to searchCodePattern for faster
PAGE_A resolution without full brute-force, and restores the turtle
PAGE_A fallback (confirmed patterns are runtime-patched offsets not
present in the on-disk PE).
2026-03-17 07:19:37 -07:00
Kelsi
ad511dad5e
fix: correct KUSER_SHARED_DATA field offsets for Warden anticheat
...
Build / Build (arm64) (push) Waiting to run
Build / Build (x86-64) (push) Waiting to run
Build / Build (macOS arm64) (push) Waiting to run
Build / Build (windows-arm64) (push) Waiting to run
Build / Build (windows-x86-64) (push) Waiting to run
Security / CodeQL (C/C++) (push) Waiting to run
Security / Semgrep (push) Waiting to run
Security / Sanitizer Build (ASan/UBSan) (push) Waiting to run
Multiple fields were at wrong offsets causing MEM_CHECK comparison
failures against expected Windows 7 SP1 values. Key fixes:
- LargePageMinimum: 0x248→0x244
- NtProductType at 0x264 was 0, now 1 (VER_NT_WORKSTATION)
- ProductTypeIsValid at 0x268 was missing
- ProcessorFeatures at 0x274 was clobbered by misplaced NtProductType
- NumberOfPhysicalPages: 0x300→0x2E8
- ActiveConsoleId at 0x2D8 was 4, now 1
- Added SuiteMask, NXSupportPolicy, and other missing fields
2026-03-16 20:55:30 -07:00
Kelsi
6fd32ecdc6
fix: skip Warden HASH_RESULT on strict servers when no CR match
...
Sending a wrong hash to AzerothCore/WotLK servers triggers an
account ban. When no pre-computed challenge-response entry matches
the server seed, skip the response entirely so the server times out
with a kick (recoverable) instead of verifying a bad hash and
banning (unrecoverable). Turtle/Classic servers remain unchanged
as they only log Warden failures.
Also adds RX silence detection and fixes Turtle isTurtle flag
propagation in MEM_CHECK path.
2026-03-16 17:38:25 -07:00
Kelsi
a3279ea1ad
fix: async Warden PAGE_A/PAGE_B checks to prevent main-loop stalls
...
Move 5-second brute-force HMAC-SHA1 code pattern searches to a
background thread via std::async. The main loop now detects PAGE_A/B
checks, launches the response builder async, and drains the result
in update() — encrypting and sending on the main thread to keep
wardenCrypto_ RC4 state thread-safe.
Also adds Turtle WoW PE binary support (isTurtle flag, dedicated exe
search, runtime patches), searchCodePattern with result caching,
writeLE32 public API, and Warden scan entry verification.
2026-03-16 16:46:29 -07:00
Kelsi
f0a515ff9c
fix: stabilize classic/turtle world session handling
Build / Build (arm64) (push) Has been cancelled
Build / Build (x86-64) (push) Has been cancelled
Build / Build (macOS arm64) (push) Has been cancelled
Build / Build (windows-arm64) (push) Has been cancelled
Build / Build (windows-x86-64) (push) Has been cancelled
Security / CodeQL (C/C++) (push) Has been cancelled
Security / Semgrep (push) Has been cancelled
Security / Sanitizer Build (ASan/UBSan) (push) Has been cancelled
2026-03-15 06:13:36 -07:00
Kelsi
43ebae217c
fix: align turtle world packet parsing
Build / Build (arm64) (push) Waiting to run
Build / Build (x86-64) (push) Waiting to run
Build / Build (macOS arm64) (push) Waiting to run
Build / Build (windows-arm64) (push) Waiting to run
Build / Build (windows-x86-64) (push) Waiting to run
Security / CodeQL (C/C++) (push) Waiting to run
Security / Semgrep (push) Waiting to run
Security / Sanitizer Build (ASan/UBSan) (push) Waiting to run
2026-03-15 03:40:58 -07:00
Kelsi
6ede9a2968
refactor: derive turtle opcodes from classic
2026-03-15 02:55:05 -07:00
Kelsi
0b6265bc55
fix: align turtle protocol compatibility
2026-03-15 01:47:36 -07:00
Kelsi
b0fafe5efa
fix: stabilize turtle world entry session handling
2026-03-15 01:21:23 -07:00
Kelsi
4dba20b757
fix: avoid unsigned subtraction checks in packet bounds
2026-03-14 22:27:42 -07:00
Kelsi
eea3784976
fix: harden turtle movement parsing and warden fallback
2026-03-14 22:18:28 -07:00
Kelsi
f44ef7b9ea
fix: optimize turtle monster move wrapped parsing
2026-03-14 22:01:26 -07:00
Kelsi
bce1f4d211
fix: reject malformed monster move payloads
2026-03-14 21:52:03 -07:00
Kelsi
f57893a459
fix(combatlog): reject truncated spell damage log tails
2026-03-14 21:52:03 -07:00
Kelsi
f07b730473
fix(combatlog): reject truncated resist logs
2026-03-14 21:52:03 -07:00
Kelsi
5c8a2afa35
fix(combatlog): accept extended TBC spell damage payloads
2026-03-14 21:52:03 -07:00
Kelsi
385ac1e66c
fix(combatlog): reject truncated instakill logs without spell id
2026-03-14 21:52:03 -07:00
Kelsi
83a368aa85
fix(combatlog): reject spell start packets missing target flags
2026-03-14 21:52:03 -07:00
Kelsi
f4ecef2ec5
fix(combatlog): reject truncated classic attacker-state packets
2026-03-14 21:52:03 -07:00
Kelsi
4d4e5ed3b9
fix(combatlog): enforce TBC attacker-state packet bounds
2026-03-14 21:52:03 -07:00
Kelsi
71e34e41b7
fix(combatlog): clamp attacker-state subdamage count to payload
2026-03-14 21:52:03 -07:00
Kelsi
90bc9118f9
fix(combatlog): validate packed GUID bounds in spell energize log
2026-03-14 21:52:03 -07:00
Kelsi
80d59a80aa
fix(combatlog): relax packed GUID minimum-size gates
2026-03-14 21:52:03 -07:00
Kelsi
c9467778dc
fix(combatlog): enforce TBC spell damage/heal packet bounds
2026-03-14 21:52:03 -07:00
Kelsi
6ccfdc9d11
fix(combatlog): validate packed GUID bounds in spell damage/heal logs
2026-03-14 21:52:03 -07:00
Kelsi
24a63beb3c
fix(combatlog): reject truncated spell start target GUIDs
2026-03-14 21:52:03 -07:00
Kelsi
bcfdcce062
fix(combatlog): reject truncated spell go packets missing counts
2026-03-14 21:52:03 -07:00
Kelsi
b24da8463c
fix(combatlog): avoid partial spell miss log entries on truncation
2026-03-14 21:52:03 -07:00
Kelsi
f0ba85fa80
fix(combatlog): reset spell go parser output before decode
2026-03-14 21:52:03 -07:00
Kelsi
6b290009aa
fix(combatlog): fail classic and tbc spell go parse on truncation
2026-03-14 21:52:03 -07:00
Kelsi
e0ac81450d
fix(combatlog): enforce full spell start fixed-field bounds
2026-03-14 21:52:03 -07:00
Kelsi
918762501f
fix(combatlog): fail spell go parse on truncated target lists
2026-03-14 21:52:03 -07:00
Kelsi
ffa6dda4d9
fix(combatlog): validate packed GUID bounds in attacker state parsers
2026-03-14 21:52:03 -07:00
Kelsi
5a9be91fac
fix(combatlog): validate packed guid bounds in spell go parser
2026-03-14 21:52:03 -07:00
Kelsi
4561eb8696
fix(combatlog): validate packed GUID bounds in spell start parser
2026-03-14 21:52:03 -07:00
Kelsi
c9858655f6
fix(combatlog): validate packed guid bounds in classic spell cast parsers
2026-03-14 21:52:03 -07:00
Kelsi
69ff91e9a2
fix(combatlog): validate packed GUID bounds in spell cast parsers
2026-03-14 21:52:03 -07:00
Kelsi
5ecc46623a
fix(combatlog): consume full spell go target lists when capped
2026-03-14 21:52:03 -07:00
Kelsi
c90c8fb8cf
fix(combatlog): parse full spell miss target lists
2026-03-14 21:52:03 -07:00
Kelsi
a962422b12
fix(combatlog): map alternate immune2 spell miss value
2026-03-14 21:52:03 -07:00
Kelsi
753f4ef1be
fix(combatlog): map immune2 spell miss results correctly
2026-03-14 21:52:03 -07:00
Kelsi
5911b8eb01
fix(combatlog): show resisted amount from resist log packets
2026-03-14 21:52:03 -07:00
Kelsi
5575fc6f28
fix(combatlog): preserve unknown source for environmental entries
2026-03-14 21:52:03 -07:00
Kelsi
075b4c1772
fix(gameplay): tighten TB elevator bounds and reset stale combat visuals
Build / Build (arm64) (push) Waiting to run
Build / Build (x86-64) (push) Waiting to run
Build / Build (macOS arm64) (push) Waiting to run
Build / Build (windows-arm64) (push) Waiting to run
Build / Build (windows-x86-64) (push) Waiting to run
Security / CodeQL (C/C++) (push) Waiting to run
Security / Semgrep (push) Waiting to run
Security / Sanitizer Build (ASan/UBSan) (push) Waiting to run
2026-03-14 09:19:16 -07:00
Kelsi
38210ec186
fix(gameplay): keep timeout animation stable on repeated presses and harden M2 elevator sync
2026-03-14 09:02:20 -07:00
Kelsi
f7a996ab26
fix(ui): avoid double-processing bag toggle hotkey
2026-03-14 08:44:45 -07:00
Kelsi
2c32b72f95
feat(ui): show keyring in inventory
2026-03-14 08:42:25 -07:00
Kelsi
800862c50a
fix(ui): cache ghost opacity updates to state changes
2026-03-14 08:31:08 -07:00
Kelsi
cebca9a882
fix(gameplay): stabilize run animation and clean ghost/death visuals
2026-03-14 08:27:32 -07:00
Kelsi
1a4b21955c
fix(transport): add Thunder Bluff lift-specific M2 attach bounds
2026-03-14 08:09:23 -07:00