Golfing Zig ELF Binaries (2025)
The article, published on CTF.gg and shared on Lobsters, details methods to golf Zig ELF binaries to sizes as low as 180 bytes. Key techniques include using a custom linker script to remove default sections, disabling the standard library with `-nostdlib`, and employing Zig's comptime to inline data. The author also shows how to hand-craft the ELF header in Zig, reducing overhead. The smallest binary is a simple exit(0) program. These techniques are particularly relevant for CTF challenges, embedded systems with tight memory, or anyone interested in minimal binary sizes. The post includes step-by-step code examples and size comparisons.
// why it matters
Enables developers to create extremely small binaries for constrained environments or CTF challenges.