Binary Ninja vs CFR
Binary Ninja
binary.ninjaCFR
benf.orgSide by side
| Figure | Binary Ninja | CFR |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | Yes | — |
| Open source | — | — |
| Web | Yes | — |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| API | Yes | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 5 | 1 |
| Spec score · Reverse Engineering Tools | 9.4 (#1) | 8.2 (#10) |
| Spec score · Decompiler Software | 9.5 (#1) | 8.3 (#5) |
Plans
Binary Ninja
- FreeFree
- Personal$199, paid once
- Commercial$1,799, paid once
- Ultimate$3,499, paid once
- Ultimate (Floating)$5,499, paid once
In their own words
Binary Ninja
Binary Ninja is a binary analysis platform that combines an interactive decompiler, disassembler, and debugger. Its decompiler can produce C or BNIL for supported architectures, and users can switch between those outputs. The API provides C++, Python, and Rust bindings for automating workflows inside or outside the interface. A native debugger supports local and remote sessions on Windows, macOS, and Linux. Paid editions support plugins managed through an in-client Plugin Manager; plugins are not available in the Free edition. The browser-based Cloud version supports all architectures but requires submitted binaries and has performance limits, with no API or plugins. The free desktop edition is for evaluation or non-commercial use and lacks API access; the Free plan lists five decompilation architectures, while desktop details state four. Paid perpetual client licenses start at $199, paid once for Personal, with one year of updates and non-commercial use. Higher tiers add commercial use, more architectures, or remote project features. Binary Ninja is made by Vector 35.
CFR
CFR is a free Java decompiler that reconstructs Java source from Java class files. It can process individual named classes, classes found on a classpath, or a whole JAR, and the command-line tool can place output in a chosen directory with the --outputdir option. Decompilation behavior can be adjusted through command-line options or an options file. The maker says CFR handles many features from Java 9, 12, and 14, and it can attempt class files from other JVM languages; those are rendered as Java rather than their original language. CFR is written in Java 6 and is said to run wherever Java 6 does. It is available as a downloadable JAR, through Maven, and from GitHub. The FAQ notes an API from version 0.135, and the project repository identifies the license as MIT. CFR handles bytecode rather than native code. Its maker also notes that some inputs fall into edge cases where output may be poor. There are no paid plans or usage limits stated.