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.
Primary sources
- README.md GitHub · wargio/r2dec-js · Revision 32ada0d
- README.md#L37-L114 GitHub · wargio/r2dec-js · Revision 32ada0d
- meson.build GitHub · wargio/r2dec-js · Revision 32ada0d
- subprojects/libquickjs.wrap GitHub · wargio/r2dec-js · Revision 32ada0d
- .github/workflows/ci.yml GitHub · wargio/r2dec-js · Revision 32ada0d
- .ci-scripts/ci-tests.sh GitHub · wargio/r2dec-js · Revision 32ada0d
- LICENSES GitHub · wargio/r2dec-js · Revision 32ada0d
- https://github.com/wargio/r2dec-js/releases/tag/6.2.0
- README.md GitHub · rizinorg/jsdec · Revision 9fc6098
More in Native binaries
- DownUnderCTF: masked-squares flag checker · Case study
- Show Your Work: a measured dissection of REA's evidence architecture · Case study
- Windows loader: static malware analysis with REA and Codex · Case study
- Ghidra · Tool
- radare2 · Tool
- Cutter · Tool