Blog

Blog

Welcome to the Blog.

RISC-V on a 10-Cent Chip

CH32V003 bring-up, UART echo, and 8 uA sleep

2026-01-30

The WCH CH32V003 costs less than a stamp and runs a 32-bit RISC-V core at 48 MHz. It has 2 KB of RAM, 16 KB of flash, and a surprisingly complete peripheral set: USART, SPI, I²C, ADC, timers.

We set up the open-source MounRiver toolchain, flash a UART echo program over the single-wire debug interface, and measure current consumption in sleep mode: 8 µA. For battery-powered sensors, this chip is hard to beat. ... continue

Nmap Beyond the Basics

NSE scripts and staged, auditable scan workflows

2026-01-08

Everyone knows nmap -sV target. But Nmap’s scripting engine (NSE) turns a port scanner into a full reconnaissance framework.

We look at three scripts that changed how I approach engagements: http-enum for directory brute-forcing, ssl-heartbleed for quick Heartbleed checks, and smb-vuln-ms17-010 for EternalBlue detection. Combining these with --script-args and custom output formats (XML piped into xsltproc) creates repeatable, auditable scan reports. ... continue

Format String Attacks

From %08x reads to %n arbitrary writes

2025-12-14

Format string vulnerabilities happen when user-controlled input ends up as the first argument to printf(). Instead of printing text, the attacker reads or writes arbitrary memory.

We demonstrate reading the stack with %08x specifiers, then escalate to an arbitrary write using %n. The write-what-where primitive turns a seemingly harmless logging call into full code execution. ... continue

Turbo Pascal in 2025

DOSBox-X, the classic IDE, and a 3 KB RTC utility

2025-10-19

Turbo Pascal 7.0 still compiles in under a second on a 486. On DOSBox-X running on modern hardware, it’s instantaneous. The IDE — blue background, yellow text, pull-down menus — is the direct ancestor of the Turbo Vision library that inspired this site’s theme.

I wrote a small unit that reads the RTC via INT 1Ah and formats it as ISO 8601. The entire program, compiled, is 3,248 bytes. Try getting that from a modern toolchain. ... continue

Linux Networking 7: nftables in Production

Ten years on: migration scars, defaults, and operator truth

2024-10-09

Ten years after nftables entered the Linux landscape, we can finally evaluate it as operators, not just early adopters.

In 2024, nftables has enough production mileage for operator-grade evaluation: distributions default toward nft-based stacks, migration projects have real scar tissue, and incident history is deep enough to separate marketing claims from operational truth. ... continue

1:1 [9bb4f8..022d23]