Uf2 Decompiler [upd] Jun 2026

We don't need to write the disassembler from scratch. We use Capstone for ARM and llvm-mc or Xtensa plugins for the others.

Extracting code from a device when the original source files are lost. Challenges in Decompilation uf2 decompiler

Example: If bytes 0x00 0x20 0x00 0x20 appear at offset 0, that’s likely 0x20002000 – a typical SRAM base. We don't need to write the disassembler from scratch

Using lifter libraries (like remill or mcsema ), we can convert the ARM Thumb instructions into . Once in LLVM IR, we can run optimization passes to simplify the mess: uf2 decompiler

Select v6M (for Cortex-M0+) or v7M (for Cortex-M4). Size: 32-bit . Endian: little-endian . Compiler: default .