Bao'An Shenzhen China

25xx Flash Crack: What the Protection Level Changes

Sep 5, 2026  /  PCB COPY

Most of the time, a 25xx Flash crack isn’t a crack at all — it’s a read. The 25-series SPI NOR family (25Q64, 25Q128, W25X, MX25L, GD25Q, EN25, AT25 and their cousins) has no CPU and no key engine, so a bench programmer on eight pins usually dumps the whole array. What changes the job is the protection level: whether the status register is locked, whether OTP bits froze block protection permanently, and whether the image inside was encrypted by the host.

That last point is where people get surprised. You can hold a perfect, bit-exact dump and still not have usable firmware.

Why a 25xx Flash crack is different from cracking an MCU

When you unlock an STM32 or a PIC, you’re fighting a security fuse that gates a debug port on a die that also executes code. RDP levels, lock bits, JTAG fuses — those exist because the chip has secrets it is trying to keep from its own debug interface.

A 25-series SPI flash is storage. It answers a small set of opcodes — 0x03 read, 0x0B fast read, 0x9F for the JEDEC ID, 0x05 and 0x35 for the status registers — and it does not ask who is calling. There is no password compare, no debug port to close, no lifecycle state to advance.

So the practical question is never “can this chip be read.” It’s three other questions:

  • Can we get clean electrical access? In-circuit, the host controller may still be driving the bus, holding CS# low, or sharing SPI with a second device. Desoldering to a socket removes all of that guesswork.
  • Is anything blocking the command we need? Block protection (BP0–BP2, TB, CMP), individual block/sector locks, the WPS bit, SRP0/SRP1 and the WP# pin state, plus OTP security registers on some parts.
  • Is the dump meaningful once we have it? This is the real fork in the road, and it has nothing to do with the flash die at all.

Block protection: mostly a write problem, not a read problem

The BP bits, the top/bottom select and the complement bit define a protected region. On the overwhelming majority of 25-series parts, that region is protected against program and erase, not against read. A fully locked status register still reads out at 0x03 exactly like a virgin part. That’s why a “locked” 25Q64 pulled off an industrial controller is normally a routine flash memory read job rather than a research project.

Where the BP bits do bite is when you want to write a modified image back, or program a replacement device to the same protection state as the original. Then we care whether SRP0/SRP1 put the part into hardware-protected or power-supply-lock mode, and whether WP# is tied low on the board.

OTP and permanently locked configuration

Several vendors offer a one-time-programmable path for the status register, and some designs use the OTP security registers to hold a serial number, MAC address or board identifier. Once those bits are burned, you cannot get the part back to a factory state. Reading is still normally fine; reproducing the original part exactly is what gets constrained. If a design reads its identity out of a security register and the replacement flash has that region blank, the board boots and then refuses to run.

Individual block locks and the WPS bit

Newer Winbond-style parts add a per-block lock scheme selected by a bit in status register 3. It changes how the protection map is interpreted, so a programmer that only understands BP0–BP2 can report confusing results. This is a configuration reading exercise, not an attack — but it’s the kind of thing a generic USB programmer and stock software will silently get wrong.

The three protection tiers we actually see

What we find on the part What it means Typical outcome
Default status register, no locks Plain array, readable with a standard SPI reader Straightforward dump, fast
Block protection set, SRP/SRL not locked, WP# tied low Writes blocked, reads still fine; the bits can be cleared on the bench Dump normally; reprogramming needs bit changes first
OTP-locked status register or locked security registers Protection state is permanent; no clean part can be restored Read usually still works; cloning to a fresh chip needs planning
Encrypted or signed image, keys held in the host SoC Dump is bit-correct but opaque Feasibility depends entirely on the host, not the flash

What actually happens to your board on the bench

The sequence rarely varies much, and none of it is exotic.

  1. Identify the part properly. Marking, package (SOIC-8 208/209-mil, WSON-8, occasionally a 24-ball BGA), and supply voltage. A 25Q64JV is 3.3 V; a 25Q64JW is 1.8 V. Reading a 1.8 V part at 3.3 V is how people cook flash they were hired to recover.
  2. Decide in-circuit or removed. If the host can be held in reset and the SPI bus is otherwise quiet, a clip read is worth trying first because nothing gets touched. If the host fights the bus, or the rail feeds half the board through the clip, we desolder. Hot air with the surrounding plastics and connectors shielded, controlled profile, no board flexing near the flash pads.
  3. Read the ID and the configuration. JEDEC ID, unique ID where supported, all status registers, and the protection map. This is recorded before anything else, because it’s part of the deliverable if the goal is to reproduce the original device.
  4. Dump the array twice, independently. Two reads, compared byte-for-byte, with a hash on each. Above 128 Mbit we make sure the tool is using 4-byte addressing rather than silently wrapping the top of the array — this is a common source of “corrupt” dumps that are actually just aliased.
  5. Analyze what came out. Look for a plausible reset vector or bootloader header, vendor magic numbers, gzip/LZMA/SquashFS/JFFS2 signatures, plain strings, and large runs of 0xFF. Then an entropy pass. High, flat entropy across the whole image with no headers means encryption. High entropy in one region with a readable header before it usually means compression, which is fine.
  6. Verify against the real thing where possible. Program a fresh device, fit it, and confirm the board boots and behaves. That step is the only honest proof that the dump is complete, and it’s why we ask whether a working reference unit is

    Working on a board like this?

    Send the chip marking or two photos. You get feasibility, lead time and price within 24 hours, and the check costs nothing.

    Get a free quote

    Related reading

WhatsApp Send board details