Reading a Vendor's Own Binary to Prove Their Firmware Was Wrong

A router firmware commit that failed identically every single time, with an error message giving no useful detail — until running `strings` on the vendor's own closed-source binary turned up the exact internal state machine causing it.

This article is also available in Traditional Chinese: 中文版 — same content, just a language difference.

Creating a brand-new firewall ruleset on a home router failed to commit, every time, with an opaque low-level error and zero indication of why. The router's config layer is a closed-source compiled binary — no source to read, no changelog entry, no forum thread matching the exact symptom. The fix came from treating the binary itself as the documentation.

The symptom, and why it looked unfixable from the outside

Any brand-new top-level firewall ruleset — one that had never existed on this router before — failed to commit via a scripted configuration session, always with the identical error, regardless of the ruleset's name or contents. Modifying an existing ruleset worked fine; only the act of creating a new one failed. The error surfaced from the router's low-level packet-filter restore step, with a line number pointing at the failure but nothing explaining what was structurally wrong with the generated configuration.

Unlock this article to keep reading, or subscribe for unlimited access to everything. See Pricing for details.