Jack Baker - Hacking WebAssembly Games with Binary Instrumentation
Demonstrates memory editing and cheat development for WebAssembly-based browser games using dynamic binary instrumentation.
Summary
WebAssembly Game Hacking
Jack Baker presents techniques for hacking browser games compiled to WebAssembly, applying traditional binary game hacking methodologies to the web context.
WebAssembly Reverse Engineering
Wasm binaries use a compact binary format that can be disassembled into WAT (WebAssembly Text Format) and analyzed with tools like WABT and Ghidra's Wasm support. Baker demonstrates decompiling Wasm modules to identify game state variables and logic functions.
Memory Editing via JavaScript
WebAssembly modules share a linear memory buffer (WebAssembly.Memory) accessible from JavaScript. Baker demonstrates reading and writing game state (health, ammo, position, score) directly from the browser console by locating the relevant memory offsets through pattern scanning.
Binary Instrumentation Approach
For games with obfuscated Wasm or runtime-generated code, Baker uses Chrome DevTools Protocol-based instrumentation to hook Wasm function calls at the JavaScript/Wasm boundary, providing a dynamic analysis capability without modifying the Wasm binary.
Related talks
Main Stage·39 min
Brad Dixon
Reverse engineers the Zwift virtual cycling platform to demonstrate trivial speed cheating via client-side protocol manipulation.
Main Stage·47 min
Dan Petro
Dan Petro reverse engineers Super Smash Bros. Melee memory structures to design an automated AI agent with sub-millisecond reaction speeds.
Black Hat·45 min
Engineers explore architecture and security mechanisms for WebAssembly: A New World of Native Exploits on the Browser.


