Lion Cipher Lab

Emulate a firmware binary with QEMU user-mode — run a MIPS/ARM embedded binary on your x86 PC

Why it matters

Almost all router, camera, and IoT firmware is compiled for MIPS or ARM CPUs — not the x86/x86-64 chip in your laptop. So when the static-extraction lab hands you a suspicious embedded binary, you cannot just type `./binary` to watch it run: your machine literally can't execute those instructions. QEMU user-mode emulation translates the foreign CPU instructions on the fly, letting a MIPS or ARM binary run as a normal process on your PC — so you can actually exercise the service, watch its syscalls, fuzz it, or attach a debugger, all without owning the physical device. This 'make the embedded…

What you'll learn

Steps in this lab

  1. Why emulate firmware at all — and the wall you hit first
  2. QEMU user-mode vs system-mode — pick the right tool now
  3. Ground rules — only run firmware you're allowed to
  4. Install QEMU user-mode and a cross-compiler
  5. Build your own foreign-architecture binary (zero legal ambiguity)
  6. Identify architecture and endianness before you run
  7. Run the static binary — proof the CPU translation works
  8. The real-world case — a dynamically-linked binary, and why it fails
  9. Fix it with `qemu-mips -L` — point QEMU at the firmware's own root
  10. The classic chroot + static-qemu recipe (firmadyne/FirmAE style)
  11. When user-mode isn't enough — and where full-system takes over
  12. What you just did — and where it leads

Open the full interactive lab →