pwn.dog

Reverse-Engineering

16 Kilobytes in the Clear: Decrypting Overwatch 2 Without Running It

Overwatch 2's 47 MB .text section ships encrypted at entropy 8.000, decrypted lazily one page at a time by Blizzard's Eidolon protector. The pad that decrypts it is 16 KB of plaintext bytes sitting in Overwatch_loader.dll, in the same folder, read circularly across the whole section. 99.84% of the game's code recovered from two files on disk - no key, no memory dump, no running process. Plus the 22 functions Eidolon guts entirely, and an honest account of the four times I fooled myself on the way.

Sorting Yourself Into a Use-After-Free: a Forever-Day in the BlackBerry Bold 9780's 2010 WebKit

It is 2026 and this is a browser bug from 2010 - a comparator-reentrancy use-after-free in Array.prototype.sort, in the decade-old JavaScriptCore that still ships on a BlackBerry Bold 9780. The rest of WebKit fixed this shape years ago; this frozen fork never will. A forever-day, confirmed crashing the real browser from a webpage, reversed to the stale write-back, and driven to an attacker-controlled cross-object write - with no ASLR and no NX, and an honest account of exactly where it stops.

The Engine Room: AMD's Detours-Based Hook Library (amdihk64)

Part 2 of the Anti-Lag+ teardown. A deep dive into amdihk64 - a Microsoft Detours-based inline-hook engine that ships in the same driver package and also hooks raw input. It's a sibling to the Delag detour from Part 1; I couldn't prove it's on the Anti-Lag+ path itself, and I say so.