MB.22.31°N · 73.18°E

Software engineer · Security researcher

  1. 01Calibrating orbit loom
  2. 02Weaving glass ribbons
  3. 03Loading case studies & writeups
  4. 04Signal locked

000%

Skip to content
MB.
Back to Writeups
BSides Mumbai CTF7// Reverse Engineering

The Game That Lies: Trust the ROM, Not the Screen

  • ▣ Sep 2026
  • ◈ Reverse Engineering 2 · The game that lies
  • ◷ 4 min read
  • ⚑ Team Megnetar

Overview

The challenge provided a .gb Game Boy ROM. Its description warned that the game logic works but the emulator screen cannot be trusted — a hint to stop playing and start reading the binary.

Challenge brief

The game logic works; the display lies. Find the truth.

Analysis

Running the ROM confirmed the display was unreliable, so the analysis moved to static inspection. Listing strings with their offsets surfaced a region of bytes that did not decode as meaningful ASCII — a strong sign of encoding.

bash
1file the_game_that_lies.gb2strings -a -t x the_game_that_lies.gb

Solution

Trying single-byte XOR keys against the suspicious region, 0x55 produced readable text in the flag format.

python
1data = open("the_game_that_lies.gb", "rb").read()[start:end]2print(bytes(b ^ 0x55 for b in data))

Flag

Redacted. Format: Bsides_Mumbai{…}.

Lessons learned

When the runtime is designed to mislead, go to the artefact. The ROM always contains the truth; the emulator only shows one interpretation of it.