[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-4247":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":25,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":41,"readmeContent":42,"aiSummary":43,"trendingCount":16,"starSnapshotCount":16,"syncStatus":44,"lastSyncTime":45,"discoverSource":46},4247,"Recaf","Col-E\u002FRecaf","Col-E","The modern Java bytecode editor","https:\u002F\u002Frecaf.coley.software",null,"Java",7225,526,174,63,0,4,13,70,12,39.17,"MIT License",false,"master",true,[27,28,29,30,31,32,33,34,35,36,37,38,39,40],"agent","asm","bytecode","bytecode-engineering","bytecode-manipulation","decompile","decompiler","java","java-decompiler","javafx","javafx-application","jvm-bytecode","reverse-engineering","static-analysis","2026-06-12 02:01:01","# Recaf [![Discord](https:\u002F\u002Fdcbadge.limes.pink\u002Fapi\u002Fserver\u002Fhttps:\u002F\u002Fdiscord.gg\u002FBya5HaA?style=flat)](https:\u002F\u002Fdiscord.gg\u002FBya5HaA) [![codecov](https:\u002F\u002Fcodecov.io\u002Fgh\u002FCol-E\u002FRecaf\u002Fgraph\u002Fbadge.svg?token=N8GslpI1lL)](https:\u002F\u002Fcodecov.io\u002Fgh\u002FCol-E\u002FRecaf)  ![downloads](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fdownloads\u002FCol-E\u002FRecaf\u002Ftotal.svg) [![Contributions welcome](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fcontributions-welcome-brightgreen.svg?style=flat)](CONTRIBUTING.md)\n\n![Recaf 4x UI](recaf.png)\n\nAn easy to use modern Java bytecode editor that abstracts away the complexities of Java programs.\n\n## Download\n\n- [Launcher](https:\u002F\u002Fgithub.com\u002FCol-E\u002FRecaf-Launcher)\n  - Usage & instructions found on the launcher repo\n- [Snapshot releases](https:\u002F\u002Fgithub.com\u002FCol-E\u002FRecaf-Launcher\u002Fblob\u002Fmaster\u002FMANUAL.md)\n  - See [CI actions](https:\u002F\u002Fgithub.com\u002FCol-E\u002FRecaf\u002Factions\u002Fworkflows\u002Fbuild.yml) for release artifacts\n- [Independent releases](https:\u002F\u002Fgithub.com\u002FCol-E\u002FRecaf\u002Freleases) _(None for 4X currently)_\n\n## Features\n\n- Edit Java bytecode with ease from a high or low level _(minus the annoying parts)_\n    - Editor features within Recaf abstract away complex details of compiled Java applications like:\n        - The constant pool\n        - Stack frame calculation\n        - Using wide instructions when needed\n        - And more!\n- Easy to use navigable interface with context-sensitive actions\n- Support for standard Java _and_ Android applications\n- Multiple decompilers to switch between, with all of their parameters made fully configurable\n- Built in compiler to allow recompiling decompiled classes, even if some referenced classes are missing *(When supported, support may vary depending on code complexity and obfuscation)*\n- A bytecode assembler with a simple syntax, and supporting tooling\n    - See the state of local variables and stack values at any point in methods\n    - Access variables by names instead of indices for clearer disassembled code\n    - Convert snippets of Java source code to bytecode sequences automatically\n- Searching for a variety of different content: Strings\u002Fnumeric constants, classes and member references, instruction patterns\n- Tools for deobfuscating obfuscated code\n    - Specially crafted class files with the intent of crashing reverse engineering tools are automatically patched when opened in Recaf\n    - Specially crafted jar\u002Fzip files are read as the JVM does, bypassing sneaky tricks that can trick reverse engineering tools into showing the wrong data\n    - Support for automatically renaming obfuscated classes and their members\n    - Support for manually renaming classes and their members *_(And exporting these mappings to a variety of mapping formats for use in other tools)_*\n    - Bytecode transformers for simplifying common obfuscation strategies\n- Attach to running Java process with instrumentation capabilities\n- And much more\n\nA complete list of features can be found in the [user documentation](https:\u002F\u002Frecaf.coley.software\u002Fuser\u002Findex.html).\n\n## Scripting & Plugins\n\nRecaf exposes almost all of its functionality through modular API's. Automating behaviors can be done easily with scripts, or with plugins for more complex situations. Additional features can also be added via plugins, which can register hooks in API's that offer them.\n\nTo create your own script or plugin, see the [developer documentation](https:\u002F\u002Frecaf.coley.software\u002Fdev\u002Findex.html), specifically the _\"plugins & scripts\"_ section.\n\n## Command Line\n\nRecaf can run as a command line application, which can be especially useful when paired with scripts provided at startup. You can see all the current launch arguments by passing `--help` as an application argument.\n\n## Development Setup\n\nClone the repository via `git clone https:\u002F\u002Fgithub.com\u002FCol-E\u002FRecaf.git`\n\nOpen the project in an IDE or generate the build with gradle.\n\n**IDE**:\n1. Import the project from the `build.gradle` file\n2. Create a run configuration with the main class `software.coley.recaf.Main`\n\n**Without IDE**:\n1. Run `gradlew build`\n    - Output will be located at: `recaf-ui\u002Fbuild\u002Flibs\u002Frecaf-ui-{VERSION}-all.jar`\n","Recaf 是一个现代化的 Java 字节码编辑器，它简化了对 Java 程序复杂性的处理。其核心功能包括支持字节码级别的直接修改、多款可配置的反编译器、内置编译器以及强大的搜索与反混淆工具。技术特点上，Recaf 采用 JavaFX 构建用户界面，并集成了 ASM 库以实现高效的字节码操作。此外，Recaf 还提供了一个易于使用的脚本和插件系统，允许用户扩展其功能。适用于需要深入分析或修改 Java 应用程序（包括 Android 应用）字节码的各种场景，如逆向工程、安全审计及软件开发等。",2,"2026-06-11 02:59:14","top_language"]