Commit Graph

5 Commits

Author SHA1 Message Date
type-two
45b3cdfb00 ret2libc, and a climb that is a final exam
SMASHING THE STACK: NX now arrives at the exact moment you reach the
shellcode. Your sixteen bytes are still there, every one of them correct,
and none of them will ever run. Then libc appears — already mapped,
already executable, already somebody else's — and the only way on is to
land on four gadgets in the right order and walk the bridges the chain
builds behind you. The chain is the real one: ret, pop rdi, "/bin/sh",
system. The four decoys are real gadgets that are genuinely no use to you
here, which is what building one of these is actually like.

THE CLIMB: each era now hands back the verb it taught you, once. Seize
the trunk. Mind the wiper. Count the 450 ms reversal. Take the ANSI bomb
and lose your steering for six seconds. Dodge what is still infectious.
Ride the live half. Do not stand on the red. Plus embers, and Log4Shell
finally gets its beat of silence — the world stops and the fortress walks
over and reads your sign.

Balance fix found while testing: the climb is hop 63, so you arrive with
TTL 2 by design, and it had seven gates that each cost a TTL. Two
failures killed you. Nothing in the climb spends TTL now — the ascent is
graded, not lethal, and ROOT's receipt reads the grade. That keeps "TTL
only goes down" intact instead of inventing a heal.

All 13 hops swept: clean.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-02 16:22:38 +10:00
type-two
df02345a61 Tuesday, and a room with people in it
ROOT now reads the save it has been carrying the whole game. The receipt
names your philes, your expiries, the baud you negotiated and lived with,
whether somebody vouched for you, whether you hung up without saying
goodbye. It had all of that and used none of it.

And the FidoNet message comes back. You wrote it at hop 35 and handed it
to the 04:00 mail run and it said it would reach the rest of the world by
Tuesday. Twenty-nine hops later it is Tuesday, and somebody replied,
because somebody always did. The loop now keeps your philes and resets
everything else.

TIME_WAIT is a room instead of six chairs. Sixteen seated, one or two
lines each, most of it not about you. One of them ages out mid-sentence
and nobody in the room looks up. FIN will not tell you about the door
until you have listened to three people who are not him. Stay a full
two-minute lap of the clock and the room notices.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-02 16:09:46 +10:00
type-two
ffd58fcebc STAGES.md — per-hop direction briefs
One page per hop: what is built, what is thin, what I would add ranked,
and a DIRECTION block to write into. Plus a cross-cutting table for
directing by system instead of by stage.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-02 15:50:38 +10:00
type-two
8030547e3c Philes you can read, a save, and MTU that costs you something
Three holes closed:

  philes  — 40 written, all in src/philes.js so the next 160 is a writing
            job and not a code job. P opens a reader: list on the left,
            the text on the right, attributed to whoever wrote it in
            whatever year they wrote it. Every level now drops at least
            one; previously you collected files you could never open.

  save    — ESTABLISHED. Every hop writes level/ttl/hop/baud/philes/
            cargo/flags to localStorage, and the boot screen offers
            R — RESUME. A 64-hop game with no save is not a 64-hop game.

  MTU     — the HUD has been showing your MTU drop as you take files off
            the board while nothing happened. Now two files are free and
            after that you arrive in pieces, one TTL per extra fragment,
            every hop. You can put things down again from the traceroute
            map. Lore costs distance, which is the economy the whole
            design is built on.

All 13 hops re-swept: clean.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-02 15:46:18 +10:00
type-two
696b0c65e8 HANDSHAKE — 13 playable hops, one renderer
You are SYN. You want ACK. Root is the only one who can give it to you.

Three load-bearing ideas, all working:
  - TTL is the health bar and it only goes down. 64 hops, no healing.
  - Bandwidth is resolution. One render target, one shader; at 1200 baud
    and below the 3D scene renders as ASCII glyphs.
  - Every header you drop is a piece of clothing. Seven wireframe shells,
    one per OSI layer, shed on the way down.

Every frequency is the real frequency, synthesised, nothing sampled:
350+440 dial tone, the DTMF matrix, R1 MF pairs at real KP/digit timing,
2600 Hz, ANSam at 2100 reversing phase every 450 ms, Bell 103 FSK.

Thirteen hops, each a different genre over one renderer — FP tutorial,
OSI descent platformer, walking sim, EFnet twin-stick, 2D buffer overflow,
Morris worm RTS, LBL terminal stealth, a whole BBS with a playable LORD,
the five-boss handshake arena, the copper, a playable blue box, the climb,
and an empty room with an ACK in it.

No engine, no build step, one vendored three.js.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-02 15:34:58 +10:00