Skip to content

Repository files navigation

REDasm open source disassembler logo

License GPL-3.0 Version 4.0.0 Website redasm.dev X @re_dasm

CI Nightly

REDasm is a cross platform disassembler and binary analysis tool, built for both hobbyists and professional reverse engineers.
It supports various CPU architectures and executable formats (see Supported Formats and Architectures).
It also offers an interactive listing, control flow graph view, cross-references, string detection and automatic function recovery.

REDasm disassembler user interface showing the disassembly listing and graph view


Table of Contents


Design Principles

  • Open by default: GPL core & plugins, public C API. Everything can be read, modified and rebuilt.
  • Native, self-contained: core is written in C17 and doesn't depends on VM, runtime or interpreter.
  • No platform lock-in: Windows and Linux are what's actively developed and tested; support for other platforms is open to anyone willing to contribute the changes they need.
  • Extendable: plugins are shared libraries loaded at runtime. Adding a CPU architecture or a file format never requires touching the core.
  • First class native GUI: written with Qt6 and sits entirely above core API. The interactive listing, graph view and navigation are designed together with the engine, not layered on afterwards.
  • First class support for retro and legacy formats: DOS, Win16, OS/2 era and console binaries are part of REDasm experience. This is what makes software preservation, recovery and porting possible for binaries whose source code is long gone.

Features

  • Interactive disassembly listing with renaming, commenting and typed data.
  • Control flow graph view at function granularity, synchronized with the listing.
  • Cross-references for code and data, with navigable history.
  • RDIL, a minimal, architecture-neutral, intermediate language used for analysis and lifting.
  • Automatic string detection (ASCII, UTF-16 and Latin-1 wide strings).
  • Type system with structs, unions, enums and typedefs, applied directly to the listing.
  • Integrated hex view.
  • Segments, imports/exports, symbols, strings and problems panels.
  • Project save/load so analysis, renames and comments survive between sessions.
  • Patching and export of analysis data.
  • Light and dark themes.

Supported Platforms

Maturity levels:

  • S: actively developed & tested (manual + automated), official prebuilt binaries.
  • A: CI-verified, compiles and full automated test suite passes, no manual/GUI testing, no official binaries.
  • B: CI-verified to compile only, no test guarantees.
Platform Description Status
Windows Windows 10+, MSVC / Visual Studio 2022 S
Linux Ubuntu 24.04 / Debian 13 reference, GCC 12+ S
FreeBSD 15.1, via CI (compiles + full test suite passes) A
MacOS via CI (compiles + full test suite passes) A
Haiku R1/beta6, via CI (compiles only: automated test suite is disabled because it hangs indefinitely at the tier0 suite; root cause not identified) B

Supported Formats and Architectures

Maturity levels:

  • S: production ready.
  • A: highly stable.
  • B: functional.
  • C: basic / stub.
  • D: wip / experimental.

Loaders (executable formats)

Format Description Status
PE / PE+ Windows executables and DLLs, 32-bit and 64-bit S
ELF / ELF64 Linux, BSD and Unix executables and shared objects A
MZ (DOS) MS-DOS executables and COM programs A
NE (Win16) 16-bit Windows and OS/2 New Executable B
LE / LX (OS/2) Linear Executable, OS/2 and DOS extenders (VxD is supported too) B
PSX EXE (PS1) PlayStation 1 executables B
PSX BIOS (PS1) PlayStation 1 BIOS B
XBE (Xbox) Original Xbox executables B

Processors (CPU architectures)

Architecture Description Status
x86 / x86_64 16-bit, 32-bit and 64-bit Intel/AMD S
MIPS MIPS32, big and little endian, delay slot aware A
ARM / Thumb ARM32 and Thumb instruction sets B
ARM64 AArch64 A

Analyzers

Analyzer Description Status
Visual Basic Recover VB5/VB6 events and project information A
MSVC RTTI MSVC run-time type information and vtable recovery D

Download

Pre-built binaries are published on the Releases page:

  • Linux: AppImage, runs on any reasonably recent distribution.
  • Windows: portable build, no installation required.

Other platforms aren't officially packaged yet.
See the Supported Platforms section above for what's CI-verified today.

Nightly builds are produced automatically from master and are GPG signed.
They track development closely and may be unstable.

Building from Source

REDasm is split across several repositories: the workspace repo fetches and builds all of them together.
Requirements, build steps and version pinning are documented in the workspace README.

Contributing

Bug reports, feature requests and pull requests are welcome.
All reports are now centralized at in a dedicated repo, so report there regardless of which component the problem belongs to, whether it's the GUI, the core or a plugin.

FAQ

Is REDasm free?
Yes. The whole project is GPL-3.0, including every bundled plugin.
You can use it, study it, modify it and redistribute it under the terms of the license.

Does REDasm have a decompiler?
Not yet. The foundations like RDIL, function boundaries, basic blocks, the type system are already in place, but decompilation is a long-term goal, some important features are still missing.

Can I script REDasm?
A Python plugin API is on the roadmap.
Today, extensions are written in C.

Can I run REDasm headless as library?
Yes, this repo contains only the GUI, it's still the main repo for historical reasons.
REDasm engine lives in core repo and contains what's needed to analyze binaries and load plugins.

What happened to version 3?
Retired because of technical debt and engine limitations, version 4 is a complete plain C rewrite with a more powerful and fast analysis engine.

License

REDasm is released under the GNU General Public License v3.0.

About

The Open Source Disassembler

Topics

Resources

Stars

1.8k stars

Watchers

47 watching

Forks

Releases

Used by

Contributors

Languages