Commit graph

775 commits

Author SHA1 Message Date
Kelsi
ad511dad5e fix: correct KUSER_SHARED_DATA field offsets for Warden anticheat
Some checks are pending
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
Some checks failed
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
Some checks are pending
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
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
f07b730473 fix(combatlog): reject truncated resist logs 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
90bc9118f9 fix(combatlog): validate packed GUID bounds in spell energize log 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
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
38210ec186 fix(gameplay): keep timeout animation stable on repeated presses and harden M2 elevator sync 2026-03-14 09:02:20 -07:00
Kelsi
2c32b72f95 feat(ui): show keyring in inventory 2026-03-14 08:42:25 -07:00
Kelsi
cebca9a882 fix(gameplay): stabilize run animation and clean ghost/death visuals 2026-03-14 08:27:32 -07:00
Kelsi
9cd52c4dd7 fix(loot): gate auto-loot sends per loot session 2026-03-14 07:31:15 -07:00
Kelsi
5fa5020af5 fix(mail): use attachment item guid for WotLK take item 2026-03-14 07:11:18 -07:00
Kelsi
5a10ae9df0 fix(trade): allow accept after peer accepts first 2026-03-14 07:02:52 -07:00
Kelsi
5b195781ad fix(death): restore corpse reclaim and enforce ghost grayscale 2026-03-14 06:43:49 -07:00
Kelsi
a2f9ccc9b9 fix(vendor): detect repair NPC flag correctly 2026-03-14 05:39:00 -07:00
Kelsi
7e7ad325dc fix(vendor): request list inventory for repair gossip 2026-03-14 05:31:17 -07:00
Kelsi
251ed7733b fix(loot): send GAMEOBJ_REPORT_USE when supported
Some checks are pending
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 04:47:34 -07:00
Kelsi
5a63d3799c fix(loot): retry delayed loot for gameobject use 2026-03-14 04:41:46 -07:00
Kelsi
011a148105 fix(combatlog): validate packed damage shield GUIDs 2026-03-14 02:01:07 -07:00
Kelsi
f6d8c01779 fix(combatlog): validate packed spell miss GUIDs 2026-03-14 01:54:01 -07:00
Kelsi
b059bbcf89 fix(combatlog): parse classic spell damage shield GUIDs as packed 2026-03-14 01:47:06 -07:00
Kelsi
468880e2c8 fix(combatlog): validate packed resist log GUIDs 2026-03-14 01:39:53 -07:00
Kelsi
0968a11234 fix(combatlog): validate packed instakill GUIDs 2026-03-14 01:32:45 -07:00
Kelsi
a48f6d1044 fix(combatlog): parse classic immune log GUIDs as packed 2026-03-14 01:25:47 -07:00
Kelsi
0fc887a3d2 fix(combatlog): validate packed proc log GUIDs 2026-03-14 01:18:28 -07:00
Kelsi
dbdc45a8a9 fix(combatlog): validate packed dispel-family GUIDs 2026-03-14 01:10:43 -07:00
Kelsi
bd8c46fa49 fix(combatlog): parse classic dispel failed GUIDs as packed 2026-03-14 01:00:56 -07:00
Kelsi
1fa2cbc64e fix(combatlog): parse classic dispel and spellsteal GUIDs as packed 2026-03-14 00:53:42 -07:00
Kelsi
fd8ea4e69e fix(combatlog): parse classic proc log GUIDs as packed 2026-03-14 00:45:50 -07:00
Kelsi
8ba5ca5337 fix(combatlog): parse classic instakill log GUIDs as packed 2026-03-14 00:38:22 -07:00
Kelsi
9c3b5d17cf fix(combatlog): parse classic resist log GUIDs as packed 2026-03-14 00:31:35 -07:00
Kelsi
ed5134d601 fix(combatlog): parse classic spelllogexecute GUIDs as packed 2026-03-14 00:24:21 -07:00
Kelsi
a147347393 fix(combattext): honor health leech multipliers 2026-03-14 00:16:28 -07:00
Kelsi
209f8db382 fix(combattext): honor power drain multipliers 2026-03-14 00:06:05 -07:00
Kelsi
64483a31d5 fix(combattext): show power drain separately from damage 2026-03-13 23:56:44 -07:00
Kelsi
e9d2c43191 fix(combatlog): validate classic spelllogexecute packed GUIDs 2026-03-13 23:47:57 -07:00
Kelsi
842771cb10 fix(combatlog): validate tbc spelllogexecute effect GUIDs 2026-03-13 23:40:39 -07:00
Kelsi
57265bfa4f fix(combattext): render evade results explicitly 2026-03-13 23:32:57 -07:00