Reverse-Engineering a Proprietary Game Server with Erlang
summary
Shows how Erlang is used to reverse-engineer a live MMO protocol by capturing SSL traffic with a man-in-the-middle proxy, logging packets, converting them to CSV and decoding fields with spreadsheets, and reverse-engineering client archives via debugger and ASM. Extracts and rebuilds ~10,000 game files and archives in 10,000 files in ~10 minutes, implements patch/login/game servers that accept real clients, uses Erlang hot code reload and pattern matching to keep connections alive and iterate until the reimplemented server works.
AI-written summary · about
chapters (33)
- 0:00Intro
- 0:24Why Reverse-Engineer?
- 1:38Frowned Upon
- 2:58Anticheat Technology
- 4:22Windows
- 5:02Phantasy Star Universe (PSU)
- 7:10Packet Logging
- 7:30Undetected Logging
- 8:23Breaking Through PSU'S SSL
- 10:35Packet Analysis
- 11:03Spreadsheet Help
- 12:09Aggregate The Field Values
- 12:36Game Mechanics
- 15:04Extracting Files
- 15:34File Extraction
- 16:21Files Analysis
- 17:06Start With A Debugger
- 18:07Step By Step
- 18:56Concurrent Extraction
- 20:07Continue With An Hex Editor
- 21:01File Parser
- 22:12Prototype Server
- 22:29Validating Protocol Assumptions
- 23:05PSU's Protocols
- 24:20First Implementation
- 26:57Responses
- 27:22Shell Testing
- 28:15Warping Is Good
- 29:05Feedback Loop
- 29:43Reloading
- 30:04Don't Crash In The Network Layer
- 31:10Still Trial And Error
- 36:45Questions?
related talks
46mLive Distributed Spying
11mReverse engineering game formats for fun and profit! (or just fun)
27mReverse Engineering a Web API
37mBehind Enemy Lines - Reverse Engineering C++ in Modern Ages
47mReversing Engineering a Web Application - For Fun, Behavior & WAF Detection
21mReverse Engineering Airplay
21mErays: Reverse Engineering Ethereum's Opaque Smart Contracts
27mReverse Engineering a Private API
