Hermes BBS

The Mac BBS.
Since 1988.

The most popular bulletin board system for the Macintosh — created by a teenager in 1988, now open source after nearly 40 years. And with Hermes 4, the BBS is back.

New: Serial Number System Open-Sourced
Olympus BBS
Click to Connect
Live Hermes 4 BBS

Click the terminal to connect to the live BBS.

Scroll
The Story

A teenager, a Macintosh, and
a 40-year legacy

In 1988, a teenager wrote Hermes BBS in THINK Pascal on a Macintosh. It became the most popular BBS software on the platform — supporting 10 simultaneous connections, dozens of external games, ANSI art, real-time chat, fast ZModem file transfers, and an RSA-based copy protection system that was years ahead of its time.

Sold in 1993, maintained by a succession of devoted owners for three decades, and reacquired by its original creator in 2024. Now open source on GitHub.

Read the Full Story
1988

Hermes BBS created

1989–1992

Becomes the #1 Mac BBS platform

1993–2024

Three stewards keep Hermes alive

2024

Reacquired and open-sourced

2025–2026

Hermes 4 — the revival begins

Now In Development

Hermes 4

A native app for macOS and iOS, built with Apple's latest frameworks. Real-time chat, forums, file sharing, 68K emulation for the original external programs, and DOOR32.SYS support for modern door games — all on Apple Silicon.

ANSI Terminal Engine

Pixel-perfect VT100/ANSI rendering with full color and cursor control

Real-Time Chat

Multi-channel rooms, DMs, @mentions — the social BBS, modernized

External Programs

68K emulation for classic externals, DOOR32.SYS for modern door games

Forums & Email

Threaded message boards with new-scan and private user email

File Sharing

HTTPS transfers with signed tokens — upload, download, browse

Sysop Dashboard

Native management console with live session preview and system monitoring

Learn More About Hermes 4
Open Source

The code is yours

Hermes v2.2 is fully open source — THINK Pascal, THINK C, 68000 assembly, and all. Including the newly released serial number copy protection system.

New February 2026

RSA in 1988: The Serial Number System, Open-Sourced

The complete copy protection system from the original Hermes BBS is now public. Genuine RSA public-key cryptography with 256-bit keys, a hand-rolled arbitrary-precision integer library with inline 68000 assembly, cooperative multitasking integration, and anti-tamper mechanisms that used stack capture in raw machine code.

Written by a teenager in 1988. Now fully documented and open for study.

The Cryptographic Core

Structurally identical to RSA. A 256-bit modulus N and key pair (P, S) where P×S≡1 mod φ(N). Only the author knew the private exponent P needed to generate serial numbers.

serial = (userNum × X + W) ^ P mod N
message = serial ^ S mod N
valid   = (message mod X == W)

Hand-Rolled BigInt with 68K Assembly

Arbitrary-precision integers up to 1024 bits, stored as arrays of 16-bit words. The critical inner loops — addition with carry, subtraction with borrow, schoolbook multiplication, and Knuth's Algorithm D for division — are all written in inline Motorola 68000 assembly using ADDX, SUBX, and MULU.W instructions. Modular exponentiation uses right-to-left binary square-and-multiply.

Cooperative Multitasking Integration

Classic Mac OS used cooperative multitasking — a BBS serving multiple callers couldn't block the event loop for RSA computation. The solution: StepPowerModBigInts, an incremental square-and-multiply that advanced a few iterations per call. Validation ran continuously in the background during normal I/O, completing the cryptographic proof over hundreds of event loop cycles.

Anti-Tamper & Subtle Degradation

Failed validation didn't display an error — it used a custom setjmp/longjmp in raw 68000 machine code to redirect program flow. The machine code was stored as a checksummed integer array and executed via obfuscated indirect jump. A pirated copy appeared to work but degraded subtly — skipped session init, silent message failures — making it hard for crackers to confirm defeat.

Four Layers of Validation

1. Quick Check

Rolling hash XORed with version-specific constant. Fast enough for startup — proves internal consistency.

2. Full RSA

Cooperative modular exponentiation running incrementally in the background during normal BBS operation.

3. CODE Checksums

Checksummed three CODE resources from the application binary at load time. Detected executable patching.

4. Consistency

Date rollback detection, impossible user record states, and database integrity checks.