You are browsing as a guest. Sign up (or log in) to start making projects!

0xKit

  • 3 Devlogs
  • 3 Total hours

A fast, offline, zero-trust CTF toolkit for recon, crypto, and forensics that runs entirely in the browser.

Ship #1

0xKit | an offline CTF field kit that runs entirely in your browser

What I made

0xKit is a toolkit for Capture The Flag: recon, classical and modern crypto, encodings, and file forensics, all in one page, all client-side. It started life as DevBox, a drawer of generic dev converters, and I reprofiled the whole thing around one user, a CTF player, instead of bolting more tools onto a pile.

The centerpiece is a chainable pipeline. Instead of one tool per page, you stack operations into a recipe and each step feeds the next: From Base64, then From Hex, then XOR. Underneath, every operation speaks one language, raw bytes, so a gzip blob survives the chain instead of getting mangled. And there's a Magic button: paste a blob you don't understand, and it tries a pile of decodes, scores each result on how much it looks like real data, and hands you the ranked chains to click into. Around that sit a Cipher Solver, an XOR brute-forcer, a File Inspector, a Hash Identifier, and the usual recon suspects (JWT, regex, diff, timestamp).

What was challenging

Writing by hand the things you'd normally just install. MD5, SHA-1 and SHA-256 from scratch, with all the 32-bit integer and padding fiddliness. A base58 codec that shipped with a sneaky all-zeros bug a test caught. The Magic detector was the hardest part conceptually: scoring "does this look like real data" using printable ratio, entropy, dictionary words, file magic bytes and flag markers, then recursing through candidate decodes without blowing up. Keeping the whole thing byte-accurate end to end so binary data never gets corrupted mid-pipeline took real care.

What I'm proud of

That it has a point of view now. It's for someone, instead of being odds and ends. It runs with zero runtime dependencies, no UI library, no router, no crypto packages, just React, Vite and plain CSS, and it's all backed by a real test suite (68 tests). I committed to the bet hard enough to delete the old generic tools, rebuild the look as a clean monochrome shell with hand-drawn line icons, and ship it as an installable, fully offline PWA. Nothing you paste ever leaves your machine, which for competition data actually matters.

How to test it

- Open the Pipeline tool, paste SGVsbG8gMHhLaXQ=, click Magic, and watch it suggest
From Base64 and decode to "Hello 0xKit". Click the suggestion to load it.
- Try XOR Brute-Force: set format to hex, paste 2e2225236d3a3631386f6738273f, and the top candidate reveals flag{xor_me} with its key.
- Cipher Solver brute-forces all 26 Caesar shifts at once; the default text decodes at ROT23.
- Drop any PNG, PDF or ZIP into File Inspector to see magic-byte detection, a hex dump and extracted strings, all without uploading the file.
- Paste an MD5 into Hash Identifier to see it guess the algorithm from the digest's shape.
- Hit Ctrl+K to jump between tools. Install it as an app and turn off your wifi: it still works.

Try project → See source code →
Open comments for this post

1h 33m 46s logged

Devlog 3 - DevBox becomes 0xKit

Big pivot. DevBox is turning into 0xKit, a toolkit for CTF recon, crypto and forensics. Same offline browser app, sharper focus.

The honest reason: DevBox worked, but it was a pile of converters you could find
in ten other places. No reason to reach for it. So instead of bolting on more
generic tools, I pointed the whole thing at one user, a CTF player, and built
the harder tools that crowd actually needs.

What sold me on the pivot was realising DevBox’s “nice to have” is a real selling point here. Everything runs in your browser and never leaves your machine. For a dev formatting JSON, who cares. For someone poking at competition data they shouldn’t paste into a random website, that matters.

The centerpiece is a pipeline. Instead of one tool per page, you stack operations and each feeds the next: From Base64, then From Hex, then XOR. It’s the CyberChef idea, rebuilt small and dependency-free. Underneath, every operation speaks one language, raw bytes, so a gzip blob survives the chain instead of getting mangled. Building it meant writing things by hand you’d normally install: MD5, SHA-1, a base58 codec with a sneaky all-zeros bug a test caught.

So was it worth it? Yes. 0xKit has a point of view now, it’s for someone instead of being a drawer of odds and ends. And it forced real work: a composable engine, hand-rolled crypto, a pile of tests. I even cut JSON, color and cron to commit to the bet. Felt scary, then immediately right.

Next up: the Magic button, which guesses the decode chain for a blob you don’t understand, then the crypto and forensics tools, and getting 0xKit live.

0

Loading discussion…

0
38
Open comments for this post

34m 27s logged

Devlog 2 - Four more tools and search

DevBox grew up a bit this round. It went from three tools to seven, and the sidebar finally got a search box.

The new ones: Regex tester, Timestamp converter, Color converter, and Text Case. The Regex one is my favorite - it highlights matches live as you type and counts them, with the g/i/m flags as little checkboxes. Timestamp figures out on its own whether you handed it seconds or milliseconds. Color swaps between HEX, RGB and HSL and shows a swatch. Text Case turns whatever you type into camelCase, snake_case, kebab-case and the rest.

Now that the list was getting longer, I added a search box up top - just start typing to filter, or hit Ctrl+K to jump straight to it.

The fiddly bits were the small edge cases. Regex with something like \d* used to duplicate the text in the preview, and the case converter choked on acronyms like parseHTTPRequest. Both fixed now. Boring stuff, but it’s the difference between a toy and something you actually trust.

Next up: a hash generator, and making the whole thing work offline as an installable app.

0

Loading discussion…

0
47
Open comments for this post

1h 1m 37s logged

Devlog 1 - Getting started

My first devlog! DevBox just went from an empty folder to something I can
actually use, with three working tools.

The idea: one page with all the little tools devs keep googling - JSON, Base64,
URL encoding - running right in your browser. No submit buttons, works offline,
nothing you type ever leaves your machine.

I started with the shell, so adding a tool is dead easy: one folder plus one
line in a config file gets it into the sidebar, routing, and search. Then the
first three tools - JSON Formatter, Base64, and URL, the last two auto-detecting
whether to encode or decode.

The tricky part was that auto-detect: it only treats input as Base64 if it
survives a clean round-trip, otherwise plain text turns to garbage.

Next up: four more tools (Regex, Timestamp, Color, Text Case).

0

Loading discussion…

0
30

Followers

Loading…