🌐
GitHub
github.com › leibnitz27 › cfr
GitHub - leibnitz27/cfr: This is the public repository for the CFR Java decompiler
MyClass.options An optional options file customizing decompilation. MyClass.expected.summary Contains the expected summary reported by the CFR API.
Starred by 2.3K users
Forked by 302 users
Languages   Java
🌐
Benf
benf.org › other › cfr
CFR - yet another java decompiler.
(optional with --constobf) fold decompiled constant expressions (thanks ColE) CFR won't do this unless asked as it tries to be true to the bytecode!
🌐
Bytecode
the.bytecode.club › showthread.php
CFR Java Decompiler
CFR is a modern CLI Java Decompiler, you can download it at http://www.benf.org/other/cfr/ If you're looking for GUI CFR, check out Bytecode Viewer - https://github.com/Konloch/bytecode-viewer/releases To run it, simply use: ... (11-04-2014, 03:52 AM)Bibl Wrote: does this deobfuscate too? I'm not sure, I know FernFlower has the -ren option...
🌐
aldeid
aldeid.com › wiki › CFR-java-decompiler
CFR-java-decompiler - aldeid
3.2 Options · 4 Example · CFR will decompile modern Java features - Java 8 lambdas (pre and post Java beta 103 changes), Java 7 String switches etc, but is written entirely in Java 6. Download link: http://www.benf.org/other/cfr/cfr_0_116.jar ·
🌐
Benf
benf.org › other › cfr › faq.html
CFR - FAQ - yet another java decompiler.
This means that you should never have to set an option - CFR will do it for you if necessary! ..... with the exception of flags which rename members. If these are neccessary, CFR will emit a comment suggesting you use them. I don't do it automatically, as it breaks reflective use of decompiled code.
🌐
Homebrew
formulae.brew.sh › formula › cfr-decompiler
cfr-decompiler — Homebrew Formulae
brew install cfr-decompiler · Yet Another Java Decompiler · https://www.benf.org/other/cfr/ License: MIT · Formula JSON API: /api/formula/cfr-decompiler.json · Formula code: cfr-decompiler.rb on GitHub ·
🌐
GitHub
github.com › FabricMC › cfr
GitHub - FabricMC/cfr: This is the public repository for the CFR Java decompiler
MyClass.options An optional options file customizing decompilation. MyClass.expected.summary Contains the expected summary reported by the CFR API.
Starred by 12 users
Forked by 11 users
Languages   Java
🌐
GitHub
github.com › OndraZizka › CFR-decompiler › blob › master › src › org › benf › cfr › reader › util › getopt › OptionsImpl.java
CFR-decompiler/src/org/benf/cfr/reader/util/getopt/OptionsImpl.java at master · OndraZizka/CFR-decompiler
public static final PermittedOptionProvider.Argument<Boolean> DUMP_CLASS_PATH = new PermittedOptionProvider.Argument<Boolean>("dumpclasspath", (OptionDecoderParam<Boolean, Void>)OptionsImpl.defaultFalseBooleanDecoder, "Dump class path for debugging purposes"); public static final PermittedOptionProvider.Argument<Boolean> DECOMPILER_COMMENTS = new PermittedOptionProvider.Argument<Boolean>("comments", (OptionDecoderParam<Boolean, Void>)OptionsImpl.defaultTrueBooleanDecoder, "Output comments describing decompiler status, fallback flags etc");
Author   OndraZizka
🌐
GitHub
github.com › OndraZizka › CFR-decompiler › blob › master › src › org › benf › cfr › reader › Main.java
CFR-decompiler/src/org/benf/cfr/reader/Main.java at master · OndraZizka/CFR-decompiler
summaryDumper = DumperFactory.getSummaryDumper(options); List<JavaTypeInstance> types = dcCommonState.explicitlyLoadJar(path); summaryDumper.notify("Summary for " + path); summaryDumper.notify("Decompiled with CFR 0_78"); if (!silent) { System.err.println("Processing " + path + " (use " + OptionsImpl.SILENT.getName() + " to silence)"); } int fatal = 0; int succeded = 0; for (JavaTypeInstance type : types) { Dumper d = new ToStringDumper(); try {
Author   OndraZizka
Find elsewhere
🌐
GitHub
github.com › leibnitz27 › cfr › blob › master › README.md
cfr/README.md at master · leibnitz27/cfr
MyClass.options An optional options file customizing decompilation. MyClass.expected.summary Contains the expected summary reported by the CFR API.
Author   leibnitz27
🌐
GitHub
github.com › run-slicer › cfr
GitHub - run-slicer/cfr: A JavaScript port of the CFR decompiler.
const fs = require("fs"); const { decompile } = require("./cfr.js"); // get it from the dist/ directory or jsDelivr const data = fs.readFileSync("./your/package/HelloWorld.class"); // read a class file console.log(await decompile("your/package/HelloWorld", { source: async (name) => { /* provide classes for analysis here, including the one you want to decompile */ console.log(name); /* internal name, e.g. java/lang/Object */ return name === "your/package/HelloWorld" ? data : null /* class not available */; }, options: { /* see https://github.com/leibnitz27/cfr/blob/master/src/org/benf/cfr/reader/util/getopt/OptionsImpl.java#L274 */ "hidelangimports": "false", /* testing option - don't hide java.lang imports */ }, }));
Author   run-slicer
🌐
Benf
benf.org › other › cfr › api › index.html
CFR - yet another java decompiler - API
SinkType defines which sort of output CFR wants to send you. You're probably interested in JAVA. But if you're decompiling an entire JAR, you might want a PROGRESS report.
🌐
FreshPorts
freshports.org › devel › cfr
FreshPorts -- devel/cfr: Class File Reader (CFR) Java decompiler
CFR will decompile modern Java features - up to and including much of Java 9, 10, 12 and beyond, but is written entirely in Java 6, so will work anywhere! It'll even make a decent go of turning class files from other JVM langauges (like Kotlin) back into Java!
🌐
GitHub
gist.github.com › cspinetta › f88007249bd54092094443c5cd8dd1eb
An script to decompile multiple java classes with CFR Java Decompiler: http://www.benf.org/other/cfr/ · GitHub
Como tarda mucho tiempo cuando procesas muchos archivos, le agregué algunas boludeces que te indica que está procesando, y no que se colgó en alguna decompilación. ... Minor changes to see on the console the accepted parameters. ... find . -type f -name "*.class" -exec bash -c 'java -jar cfr-0.151.jar $0 --outputdir decompiled' {} \; 🤷
🌐
GitHub
github.com › ambergorzynski › cfr_cov
GitHub - ambergorzynski/cfr_cov: CFR decompiler instrumented with coverage
_.options An optional options file customizing decompilation. _.expected.summary Contains the expected summary reported by the CFR API.
Author   ambergorzynski
🌐
Macuyiko
blog.macuyiko.com › post › 2015 › a-quick-look-at-java-decompilers.html
A Quick Look At Java Decompilers
An Advanced Lightweight Java Bytecode Viewer, GUI Java Decompiler, GUI Bytecode Editor, GUI Smali, GUI Baksmali, GUI APK Editor, GUI Dex Editor, GUI APK Decompiler, GUI DEX Decompiler, GUI Procyon Java Decompiler, GUI Krakatau, GUI CFR Java Decompiler, GUI FernFlower Java Decompiler, GUI DEX2Jar, ...
🌐
GitHub
github.com › leibnitz27 › cfr › releases
Releases · leibnitz27/cfr
Don't resugar negative sized arrays (thanks x4e) Handle basic loop index obfuscation (confusing offset constants). (optional with --constobf) fold decompiled constant expressions (thanks ColE) CFR won't do this unless asked as it tries to be true to the bytecode!
Author   leibnitz27
🌐
Eclipse Marketplace
marketplace.eclipse.org › free-tagging › cfr
cfr | Eclipse Plugins, Bundles and Products - Eclipse Marketplace | Eclipse Foundation
Enhanced Class Decompiler integrates CFR, FernFlower, JD, Procyon, Vineflower seamlessly with Eclipse and allows Java developers to debug class files without source code directly...
🌐
Uprootsecurity
uprootsecurity.com › blog › decompile-jar-files-java-guide
How to Decompile JAR Files: Guide for Java Developers
Q2. Which tools are recommended for decompiling JAR files? Popular tools include JD-GUI for its intuitive interface, CFR for modern Java support, FernFlower (built into IntelliJ IDEA), Procyon for complex structures, and Jadx for JAR/APK support.