Tool

r2dec

Decompiler plugin for radare2 that turns the disassembly of an analyzed function into pseudo-C through the pdd command. Its decompiler is written in JavaScript, with one module per architecture, compiled to QuickJS bytecode and embedded in a native radare2 core plugin; output can sit beside the assembly or offsets, show only scope blocks, casts or cross-references, render as HTML, or be written back into radare2 as comments. The README lists x86/x64, 16/32/64-bit ARM, MIPS, PowerPC (including VLE), SPARC, AVR, V850 and Dalvik, plus experimental 6502, 8051, BPF, m68k, SuperH, WebAssembly and RISC-V support.

Requirements & limits

  • Release at review: 6.2.0, published 2026-08-16 from the reviewed master commit, with a Linux amd64 plugin, Windows 32- and 64-bit builds and a source archive that includes dependencies. Release numbers follow radare2's: CI builds against radare2 6.2.0 on Linux and Windows, and the macOS job is commented out. Install through r2pm, or build with meson 0.55.0+ and ninja against the radare2 development files; QuickJS is fetched as a meson subproject.
  • Binaries are supplied by the user and the target function must first be analyzed in radare2 (af). Output is readable pseudo-C rather than recovered source; as the README example shows, it can keep register assignments such as eax and generic local names. Regression tests live in the separate r2dec-regression repository, and issue reports use the JSON produced by pddi.
  • This repository builds only a radare2 plugin; Rizin's jsdec decompiler is a separate project. Source files carry SPDX headers: BSD-3-Clause for most of the code and MIT for the bundled base64 helper, so GitHub detects no single license. No binaries were decompiled.

About this entry

Type
Tool
Category
Native analysis tools
Relationship
Foundation tool
Targets
Binary

Sources reviewed

The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.

Report an outdated entry Suggest a translation fix

Primary sources

  1. README.md GitHub · wargio/r2dec-js · Revision 32ada0d
  2. README.md#L37-L114 GitHub · wargio/r2dec-js · Revision 32ada0d
  3. meson.build GitHub · wargio/r2dec-js · Revision 32ada0d
  4. subprojects/libquickjs.wrap GitHub · wargio/r2dec-js · Revision 32ada0d
  5. .github/workflows/ci.yml GitHub · wargio/r2dec-js · Revision 32ada0d
  6. .ci-scripts/ci-tests.sh GitHub · wargio/r2dec-js · Revision 32ada0d
  7. LICENSES GitHub · wargio/r2dec-js · Revision 32ada0d
  8. https://github.com/wargio/r2dec-js/releases/tag/6.2.0
  9. README.md GitHub · rizinorg/jsdec · Revision 9fc6098

More in Native binaries

All 74 entries in Native binaries