A deep dive into reverse-engineering the Synacor Challenge binary — a fictional processor VM running a text adventure game. Covers disassembling the VM bytecode, solving the teleporter puzzle by translating a recursive checksum function to Rust with memoization and parallel brute-force, discovering XOR-based string obfuscation and a data section encryption scheme, and extracting game strings and code generation logic from the decrypted binary. Includes annotated disassembly and open questions about game map and state storage.
Table of contents
Reverse-engineering the Synacor ChallengeThinking outside of the boxFinding the input loopAn Easter Egg in the self-test routineIndirect calls and plain-text printingObfuscated printingData section obfuscationDumping all the stringsCode generationRemaining questionsThe Annotated Synacor ChallengeSort: