AGAlan Gregoryinoctrys.hashnode.dev·Sep 27 · 6 min readROM: Golden Age # Part 9 — The final server pocSeries: Reverse-engineering an MMORPG for preservation. https://youtu.be/ritwePk_L8g This one covers the last two pieces: the game server that the client plays on, and the datapack that gives it the 00
AGAlan Gregoryinoctrys.hashnode.dev·Sep 26 · 5 min readROM: Golden Age # Part 8 — Extracting data from the client and preparing it for the server Series: Reverse-engineering an MMORPG for preservation. ROM: Golden Age's static game data (maps, items, monsters, buffs, quests…) ships with the client. This post covers how we found where that data 00
AGAlan Gregoryinoctrys.hashnode.dev·Sep 24 · 3 min readROM: Golden Age # Part 7 — Breaking GameGuard on the client: the signed config, and the DLLSeries: Reverse-engineering an MMORPG for preservation. Server-side, GameGuard was free: the retail server drives the anti-cheat through one message, S2C_GameGuardCheck, and our emulator never sends i00
AGAlan Gregoryinoctrys.hashnode.dev·Sep 23 · 5 min readROM: Golden Age # Part 6 — The real server: a clean-room rewrite in GoSeries: Reverse-engineering an MMORPG for preservation. We picked Go to create a server poc. The shape of a game server maps almost perfectly onto Go's concurrency model: one goroutine per connection 00
AGAlan Gregoryinoctrys.hashnode.dev·Sep 21 · 5 min readROM: Golden Age # Part 5 — Rebuilding the message catalog: metadata, then the binary huntSeries: Reverse-engineering an MMORPG for preservation. In part 4 we cracked the wire — framing and cipher — while leaning on a message catalog we took as given. This part is where that catalog comes 00