$ cat writeup.md…
$ cat writeup.md…
sekai2026
Task: Windows game client with custom anti-cheat attestations and encrypted CBL2/CBR2 flag protocol. Solution: reimplemented transport, emulated user/kernel attestations, used baked half-keys, and fetched the PNG flag.
$ cat /etc/rate-limit
Rate limit reached (20 reads/hour per IP). Showing preview only — full content returns at the next hour roll-over.
Original organizer description was not available in the saved task context.
English summary: the task provided a Windows chibi game client and anti-cheat components. The goal was to reverse the hidden secret-room protocol, compute the required user-mode and kernel-mode typed secrets, and retrieve the flag image from the remote server.
Relevant files in tasks/sekai2026/Chibile/rev_chibile/:
chibile.exe — main game client.eac_nocrt.dll and eac_nocrt_unpacked.dll — user-mode anti-cheat DLL.eac_shield.sys — kernel anti-cheat driver.PROTOCOL.md — partial documentation for Phase1 secret derivation.full_solve.py, solve_emu.py, emu_gate.py, emu_um.py, emu_km.py, solve_chibile.py, and the final flag.png.The visible game was a front-end for a hidden secret-room flow. Static analysis of chibile.exe showed that initialization deobfuscated a remote endpoint and prepared an anti-cheat context. The recovered endpoint was:
8875cf0267a7c5510933aebf9de827b9.chals.sekai.team:1337
The secret-room path calls Phase1 first, then Phase2:
{sid, c_um, lh_um, c_km, lh_km}.typed_um and typed_km.sid, typed_um, and typed_km, and receives a CBF2 PNG containing the flag.The Phase1 JSON format was:
{ "phase": 1, "nonce": "...", "um_attest": "...", "km_attest": "...", "pid": 1234, "ts": 1234567890, "client_build": "CHIBILE-R3-20260615" }
The transport was a custom CBL2 request / CBR2 response wrapper using:
...
$ grep --similar