← All projects

Firmware & Reverse Engineering

live

Python/Rust firmware recovery tooling for BIOS/SPI flashing, EEPROM repair, board identity, and undocumented hardware workflows.

FirmwareEmbeddedReverse EngineeringPythonRust

Overview

Low-level work on the firmware inside hardware I service: reading, writing, and recovering BIOS and EEPROM images; repairing board identity and configuration data; and reverse engineering the pieces that aren’t documented. The goal each time is to turn expert-only, one-shot procedures into tooling that’s fast, repeatable, and hard to get wrong.

What I work across

  • BIOS / SPI flashing on a range of boards: dumping, reflashing, and recovering firmware images across different hardware, including bringing back boards that the standard “official” path treats as bricked.
  • EEPROM and board-identity data: inspecting and repairing the configuration and identity regions that hardware relies on, with integrity checks so a fix doesn’t quietly corrupt something else.
  • Reverse engineering the undocumented parts: disassembly and analysis (Ghidra, captured I/O, ground-truth test vectors) to understand a format or protocol well enough to work with it safely.

A case that stuck with me

A machine’s drives were locked behind an encrypted volume whose password was itself stored, encrypted, in NVRAM, and the only description of the encryption scheme lived in the compiled binaries sitting on those same drives. Working back through the binaries, I figured out how the scheme worked and, crucially, what to even search for, then recovered the password and unlocked the pair of drives. That turned a $5,000 to $7,000 machine bound for the junkyard back into a working system. It’s the kind of problem I like: the answer is in there somewhere, and the job is reasoning out where to look.

What makes the tooling different

  • It scripts and automates procedures that are normally done by hand, so what used to be an hours-long expert ritual becomes a repeatable, auditable run.
  • Where possible, it drives devices through their own built-in software and system calls instead of fighting the hardware from outside. That means fewer moving parts, less risk to the device, and more consistent results.
  • Built in Python and Rust, and a genuine improvement over the industry tools that ship for the same jobs.

A note on detail

Some of the reverse-engineering methods are the whole value and are easy to copy once spelled out, so I keep those specifics deliberately vague. Happy to walk through the general approach (and the firmware and recovery side in more depth) in the right context.