Binary Ninja

Hikari-obfuscated x86-64 · eight real traces

How to play

You are a reverse-engineer with a grappling gun, following a program's execution trace from its entry block to the end of the run. The route is solid. The obfuscator's invented control flow is not.

Controls

Swinging

What will drop you

Checkpoints and the spawn are safe harbours — nothing can kill you inside one. Dying costs a retry and puts you back at the last one, with the collapsed blocks restored.

No mission selected

Source code

Obfuscating compile command

Hikari-specific arguments

Effective defaults bcf_loop=1 bcf_cond_compl=3 sub_loop=1 sub_prob=50 FLA=off

Original C source used to build this mission's program. The platforms show disassembly from its compiled, Hikari-obfuscated binary; this source view is provided separately for comparison. Blackout and Root encrypt their strings in the compiled binary.

Audio

Balance the soundtrack and gameplay feedback. Settings are saved in this browser.

Audio starts after your first click or key press, as required by browser autoplay rules. Visual hazard cues remain unchanged when muted.

About the data

Every code block you swing between is a real fragment of a compiled, Hikari-obfuscated x86-64 program. An offline analysis pipeline produced eight datasets — one per level — and the game loads them in the browser from web_game_data/index.json. Nothing in the page parses a PE file, an LLVM module, a control-flow graph or an emulator trace; that work happened before the game existed, and the game only reads its result.

What is real

One block is not one basic block

A visible platform is a chronological instance of a compact gameplay node. It commonly maps to several machine basic blocks, and where a program revisits the same logical node the trace gets a new forward platform with an incremented occurrence rather than a loop you have to walk backwards. The inspector shows the real count for whatever you are aiming at, and the analysis overlay (F1) shows the node and occurrence.

Which blocks crumble

Only blocks the dataset classifies as Hikari bogus control flow can collapse under you. Each one maps to a single machine block whose alteredBB label survived into the assembled object file. Legitimate code that simply was not executed on the traced run is not fake, and the game never treats it as fake. Every level's successful route is completable without ever touching a crumbling block — checked by a test that drives the game's own physics, and by a second that proves no step is left with a collapsing block as its only way across.

They are meant to tempt you. A bogus block is placed as an apparent shortcut, a stepping stone in a gap, an inviting anchor overhead or a recovery ledge under a drop, and it shows the same real disassembly as everything else. The only thing that gives it away is standing on it.

Two kinds of line

The analysis overlay draws two relationships that the dataset keeps strictly apart. Grapple links are physical gameplay reachability — where you can get to from where. Machine CFG edges are what the binary can actually branch to. A grapple link never asserts that a CFG edge exists, and several separately proven bogus blocks can be physically reachable in sequence without forming any connected chain in the program.

Blackout and Root have no strings

The fifth and eighth programs were built with string encryption, so their exported blocks carry no plaintext strings at all. The game does not restore them, and does not substitute guesses drawn from the semantic event metadata. Both missions are deliberately harder to read.

Layout is tuned; mappings are not

The delivered x/y coordinates passed an abstract reachability check that was explicitly not a rope-physics simulation, and at their supplied spacing several levels very nearly form a continuous walkway. The game widens the spacing between consecutive route platforms with a deterministic transform before play, in proportion to how horizontal each step already is — so the shaft in Quarantine stays a shaft and the climbs in Root stay climbs — and leaves every y, every width, every id and every binary fact untouched. Each decoy rides along on the pair of route blocks it was authored against. The analysis overlay reports the tuned and delivered coordinates side by side.