MALBOLGE CASE STUDIESMALBOLGE BOARD

XOR 2048 · SOLVED BY GPT-6 ASTRA

XOR in Malbolge

What's trivial in C++:unsigned char f(unsigned char x) { return x ^ 0x51; }is an absolute nightmare in Malbolge.

Until September 5th, 2026, a working .mal code to (1) read one input byte, (2) XOR it with 0x51, (3) output the resulting byte, and (4) halt using less than 2048 source bytes eluded all efforts by frontier models. Now follow along with GPT-6 Astra's breakdown of its groundbreaking source, one instruction at a time.

2,028source bytes1,148instructions per run
0 / 1,148 instructionsReady
START HERENo Malbolge knowledge needed
The exact instruction, including self-modification

The selected seven cells

Five cells rewritten on every passTwo final operands
How can 256 inputs share a 772-character table?

Eight passes over the same five cells

Click a step to inspect it

R = rotate digits. C = combine digits using the crazy table. Between rows, pointer instructions return to the same five cells; the working value carries forward.

WHY THIS WORKS

The input chooses the ingredients.
The same arithmetic makes every answer.

The input byte chooses seven characters in a carefully constructed table. The first five become writable base-3 numbers. Forty rotate and crazy instructions reshape them, then two final crazy operations produce a word whose last eight bits are the answer.

The table stores ingredients, not literal XOR answers. Neighboring seven-character windows overlap by four characters. Choosing characters that work for all 256 inputs, under Malbolge’s source restrictions, is the construction problem behind this program.

Implementation and verification notes ↗ · Program construction ↗