Recaf

Col-EMIT活跃维护

基于 JavaFX 的现代 Java 字节码编辑器,支持反编译、汇编与字节码修改,方便逆向分析和调试 JVM 程序。

The modern Java bytecode editor

4.0.0-alpha发布于 2025-08-31 17:43 UTC7,457star +3 / 7 天548fork同步于 2026-11-10 05:32 UTC

怎么上手

由 README 提炼,执行前请确认
git clone https://github.com/Col-E/Recaf.git
gradlew build
硬件要求按 README 说明

README 未说明硬件要求,仅提及以 java -jar 方式运行,需自备 Java 运行环境

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

现代化 Java/Android 字节码编辑器,让你无需源码也能浏览、修改并导出编译后的应用

基于 JavaFX 的现代 Java 字节码编辑器,支持反编译、汇编与字节码修改,方便逆向分析和调试 JVM 程序。

核心能力

  • 内置 CFR、Procyon、Fernflower 三种反编译器可切换
  • 直接编辑反编译源码或使用字节码汇编器改类文件
  • 提供常量、谓词、控制流等反混淆变换器并支持预览
  • 按模式批量重命名混淆类与成员并可导出映射
  • 通过脚本与 CLI 的 --headless 模式自动化分析流程

容易踩的坑

构建产物在 recaf-ui/build/libs/recaf-ui-{VERSION}-all.jar,不在仓库根目录;README 未说明所需 JDK 版本,构建前需自行确认;CLI 脚本自动化需额外编写脚本文件并通过 --script 传入

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本4.0.0-alpha
  1. 4.0.0-alpha4.0.0 Alpha / Preview最新正式版2025-08-31 · 2025-08-31 17:43 UTC

    Recaf 4.X Preview

    recaf4prev

    These are preview builds of Recaf built on the current master branch on August 31st 2025 July 29th 2026.

    Java 22+ is required

    What is new in Recaf 4.X compared to 2.X / 3.X?

    There are too many changes to list but some highlights include:

    • New modern UI theme + nicer monospace font
    • New tools for deobfuscating code
    • Improved support for loading obfuscated inputs targeting common anti-reverse engineering techniques
    • Improved dockable UI system with features comparable to what you would see in IntelliJ
    • Improved assembly format for editing Java instructions
    • Improved assembly UI, including control flow visualization, variable read/write visualization, and more
    • Basic read-only Android support (Will be expanded upon in future releases)

    Which file should I download?

    We recommend most users grab the launcher as it gives you the means to easily grab new releases with a single click. You can find the launcher project here. Information on why a launcher exists can be found in the user documentation section under "Installing".

    If you do not want the launcher, you can grab the independent release artifacts attached here, or build Recaf from source yourself. We do not officially have releases anywhere outside of GitHub. We are aware that some third parties will offer their own way to install Recaf such as via Brew,AUR, etc but insist you only use these if you trust them and don't care if you use very outdated builds.

    Which file do I download if I want this specific build?

    The independent releases recaf-4x-alpha-<platform>.jar are run with java -jar. The <platform> portion should match your operating system and architecture.

    • For Windows, just grab the file that says win-86x64
    • For Mac/Linux, grab the respective mac or linux jar that is suffixed with 86x64 or aarch depending on your CPU architecture.

    Why is this not marked as a preview on github if these are previews?

    Because then they don't show up in the main page as the latest release, which massively limits their reach. I am really tired of people downloading a 5+ year old version of Recaf so this is why this is marked as an actual release.

    This does not mean 4.0.0 is right around the corner, we still have a lot left to do.

  2. 2.21.142.21.42024-04-27 · 2024-04-27 09:59 UTC
    查看更新说明

    2.21.14 (2024-04-27)

    👉 BIG BOLD ATTENTION GRABBING TEXT 👈

    Recaf 2.X is not supported in any fashion. While there are no 4.X release artifacts posted here yet (this will happen at a later date) you can and SHOULD use Recaf 4.X. How? Please read the project readme.

    Important news

    This update is primarily to remove the auto-updater from Recaf 2.X as the next release iterations are not compatible with the existing auto-updater schema. The last few prior updates announced that Recaf 3.X was in progress. We have since restructured significantly once more and will be going to 4.X.

    For more details you can check out 4.X here:

    Updated libraries

    • ASM 9.2 --> 9.7
    • CAFEDUDE 1.9.6 --> 2.0.1
    • JavaParser 3.24.2 --> 3.25.9
    • JPhantom 1.4.3 --> 1.4.4
  3. 2.21.132022-03-29 · 2022-03-29 08:10 UTC
    查看更新说明

    2.21.13 (2022-03-29)

    Important news

    The 3rd major version release of Recaf (3.X) is in a early-alpha state. You can check the progress here: Recaf 3X Issues & Feedback

    For repository owners and maintainers of package managers, this will change the artifact release process. More information about this change will come out once the 3X project gets closer to an official release.

    New Features

    • Plugins can now specify custom language files (253be13)
    • Keybind to increase/decrease font size (e2cbecc)

    Bug Fixes

    • Fix double backslash before escaped unicode character causing lexing error (38a7b2a)
    • Updates from JavaFX 16 to 18 includes various fixes (46e39e and c66f238)
  4. 2.21.122022-02-01 · 2022-02-01 05:58 UTC
    查看更新说明

    2.21.12 (2022-02-01)

    Important news

    The 3rd major version release of Recaf (3.X) is in a early-alpha state. You can check the progress here: Recaf 3X Issues & Feedback

    For repository owners and maintainers of package managers, this will change the artifact release process. More information about this change will come out once the 3X project gets closer to an official release.

    Bug Fixes

    • Renaming a class, then renaming its members does not yield correct aggregate mappings (9358cbf)
  5. 2.21.112022-01-08 · 2022-01-08 07:29 UTC
    查看更新说明

    2.21.11 (2022-01-08)

    Important news

    The 3rd major version release of Recaf (3.X) is in a early-alpha state. You can check the progress here: Recaf 3X Issues & Feedback

    For repository owners and maintainers of package managers, this will change the artifact release process. More information about this change will come out once the 3X project gets closer to an official release.

    Bug Fixes

    • Fix update prompt not properly rendering all items in the changelog (7ee876d)
    • Fix detection of minimum support version for javac (4a72119)
    • Fix crash exporting jar with duplicate paths (7a0a8a0)
    • Fix accidental removal of ZIP parsing fallbacks (d0cf108)
    • Fix desktop browse breaking on Linux, now use platform specific open options (3212458)
    • Improve phantom class generation performance by moving file IO to in-memory operations (1c855ec)
    • Improve compiler performance by moving file based classpath to in-memory classpath (1c855ec)

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Recaf Discord codecov downloads Contributions welcome

    Recaf 4.X user interface

    A versatile and easy to use Java and Android bytecode editor. Recaf makes working with compiled Java applications easier. Explore unfamiliar code, analyze obfuscated applications, modify classes without their original source, and export your changes, all through a familiar IDE-like interface.

    Download

    Features

    • Switch between multiple configurable Java decompilers: CFR, Procyon, Fernflower
      • Each decompiler can be fully configured via the config menu. If you're lost, just use the config window's search bar and type in the name of the decompiler you want to tweak.
    • Search for strings, constants, class references, methods, and bytecode instruction patterns.
    • Navigate thorugh Java applications like you would with an IDE.
      • Control + left click or press F3 to jump to referenced classes, fields, and methods.
      • Left/Right + Alt to jump between recently visited locations.
      • Control + G to quickly find classes, members, or file content in an opened application.
      • Everything else is accessible via context-sensitive right click menus.
        • Click on a class? Get shown operations for the class.
        • Click on a method? Get shown operations for the method.
    • Both Java and Android applications are treated the same.

    Edit via the decompiler

    Make simple edits by just plainly editing decompiled Java source code, save your changes, then export the modified application.

    • Missing dependency / library code in the application JAR? Recaf can fill in the blanks for you by analyzing the existing code and generating library skeleton code. The compiler can't tell the difference.
    • Encountering issues with decompilation quality making source edits too difficult? Use the bytecode assembler!

    Edit via the assembler

    Recaf's bytecode assembler makes changing low level class files easy. Complex aspects of the file format are abstracted away from you. Helpful tools can assist you even if you're a total bytecode noob.

    • Assembler features:
      • Variable names used in place of variable slots, making code easier to read and reason through.
      • Immediate feedback on syntax errors, improper usage of instructions, etc.
      • Visualize control flow by clicking on a label to see where control-flow instructions lead to.
    • Assembler tools:
      • Analysis: See what values are on the stack and in local variables at any point in the method. Click a line and it updates to show what happens at that point in the code.
      • Declared Variables: A table of all variables, how they are used, and single-click navigation to jump between those usages.
      • Java to Bytecode: Write simple Java source code on the left hand side, see the equivalent Java bytecode on the right hand side. You can easily generate complex bytecode from source code, then copy and paste it into the assembler wherever you want.
      • Snippets: Find yourself writing the same debug println call all the time? Save it as a snippet and access it any time. Copy and paste ready debug prints are the lifeblood of any programmer desparately debugging some third party code whose authors went the way of the dinosaur.

    Obfuscated control flow and string encryption removed, before and after

    • Powerful deobfuscation tools:

      • Generalized Java bytecode transformers for opaque constants, predicates, and more. Pick a set of transformers in the deobfuscation window, preview your changes, and apply to the application when you're satisfied with the results.
      • Support for mass-renaming obfuscated classes and their members via pattern-driven mapping generators.
      • Want more control over renaming? You can manually rename classes and their members too. You can even export the mappings to a variety of formats for use in other tools when you're done.
    • Silent backround measures:

      • Specially crafted class files with the intent of crashing reverse engineering tools are automatically patched when opened in Recaf. If you want to control the level of detail for automated patches to be more or less thorough you can change the patch mode in the config.
      • Specially crafted jar/zip files are read as the JVM does, bypassing sneaky tricks that can trick reverse engineering tools into showing the wrong data. Try comparing some sample jars to other tools and you can see how other tools get confused where Recaf does not.
    • For scripts, see Scripts in the documentation.
    • For CLI usage, see Running
    • The gist, make the script then use java -jar recaf.jar --input <app> --script <script.java>
    • Looking to automate workflows with AI? Use the CLI's --headless and the MCP plugin to give agents access to all of Recaf's capabilities.

    A complete list of features can be found in the user guide.

    Documentation

    • User guide: Covers functionality, configuration, and usage.
    • Developer guide: Covers architecture, scripting, plugins, and APIs.
    • Discord: Community discussion, support, and hangout.

    Development Setup

    Clone the repository via git clone https://github.com/Col-E/Recaf.git

    Open the project in an IDE or generate the build with gradle.

    IDE:

    1. Import the project from the build.gradle file
    2. Create a run configuration with the main class software.coley.recaf.Main

    Without IDE:

    1. Run gradlew build
      • Output will be located at: recaf-ui/build/libs/recaf-ui-{VERSION}-all.jar