How to Use Decompiler Explorer (dogbolt.org) to Decompile a Binary

Updated

Decompiler Explorer is a browser-based tool that runs a binary through many popular decompilers at once and shows their C-like output side by side. To use it, either upload a file under 2MB or pick one of the provided samples; no account or installation is needed. Uploaded binaries are retained, so don't submit anything you can't share.

What you get

The page is built around a single comparison view. After you supply a binary, it lists the available decompilers — angr, BinaryNinja, Boomerang, dewolf, Ghidra, Hex-Rays, Kuna, RecStudio, Reko, Relyze, RetDec, rev.ng, and Snowman — and shows each one's equivalent C-like output for the same input. That makes it useful for seeing where decompilers agree, where they diverge, and which one handles a given construct more readably.

Option 1: Upload your own file

  1. Find the Upload File control on the page.
  2. Select a binary from your machine. It must be less than 2MB.
  3. Submit it and wait for the decompiler outputs to render.

Expected result: the comparison view populates with output from the available decompilers. If nothing appears, the most likely cause is that the file exceeded the 2MB limit or wasn't a format the tooling could parse.

Note the retention behavior: uploaded binaries are kept. Treat every upload as public and strip anything sensitive before submitting.

Option 2: Use a provided sample

If you just want to see how the tool works, skip the upload. Open the Select a Sample... dropdown and choose one of the bundled binaries:

  • A CTF Challenge on x86 Linux
  • Hello World on Arm Linux
  • Megatest Decompiler Test Binary: arm64 FreeBSD
  • Megatest Decompiler Test Binary: arm64 macOS
  • Megatest Decompiler Test Binary: x86 Windows
  • Ping6 on x86_64 Linux
  • VTables on x86 Windows
  • Yet Another x86 Linux CTF Challenge

The samples cover multiple architectures and platforms, so they're a quick way to compare how each decompiler handles different instruction sets and binary formats. The "Megatest" binaries in particular are designed to stress-test decompiler output.

Choosing between upload and sample

Situation Use
You have a specific binary to analyze Upload (under 2MB)
You want to learn the interface first A sample
You're comparing decompilers on a known construct A Megatest sample
Your file is sensitive or larger than 2MB Neither — the file is retained and the size cap applies

Practical tips

  • Start with a sample to learn the layout before uploading your own file.
  • Compare outputs across decompilers rather than trusting a single one; disagreement between them often points to the tricky parts of the binary.
  • Since uploads are retained, work on copies and avoid proprietary or personal binaries.

The project is open source and can be forked on GitHub if you want to run or modify it yourself.