Col-E/Recaf

GitHub: Col-E/Recaf

一款现代化的 Java 字节码编辑器,通过抽象编译细节简化了对 Java 应用程序的逆向分析与修改。

Stars: 7039 | Forks: 516

# Recaf [![Discord](https://dcbadge.limes.pink/api/server/https://discord.gg/Bya5HaA?style=flat)](https://discord.gg/Bya5HaA) [![codecov](https://codecov.io/gh/Col-E/Recaf/graph/badge.svg?token=N8GslpI1lL)](https://codecov.io/gh/Col-E/Recaf) ![downloads](https://img.shields.io/github/downloads/Col-E/Recaf/total.svg) [![欢迎贡献](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](CONTRIBUTING.md) ![Recaf 4x UI](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/cbb1e4336f191506.png) 一个易于使用的现代 Java 字节码编辑器,它抽象了 Java 程序的复杂性。 ## 下载 - [Launcher](https://github.com/Col-E/Recaf-Launcher) - 使用说明可在 launcher 仓库中找到 - [快照版本](https://github.com/Col-E/Recaf-Launcher/blob/master/MANUAL.md) - 查看 [CI actions](https://github.com/Col-E/Recaf/actions/workflows/build.yml) 获取构建产物 - [独立版本](https://github.com/Col-E/Recaf/releases) _(目前 4X 版本暂无)_ ## 功能特性 - 轻松地从高层或低层视角编辑 Java 字节码(去除了繁琐的部分) - Recaf 内的编辑功能抽象了编译后的 Java 应用程序的复杂细节,例如: - 常量池 - 栈帧计算 - 必要时使用 wide 指令 - 以及更多! - 易于使用的可导航界面,带有上下文敏感的操作 - 支持 标准 Java 以及 Android 应用程序 - 支持在多个反编译器之间切换,并完全开放其参数配置 - 内置编译器,允许重新编译反编译后的类,即使缺少某些引用的类(*当被支持时,支持程度可能因代码复杂度和混淆程度而异*) - 拥有简单语法和支持工具的字节码汇编器 - 查看方法中任意位置的局部变量和栈值的状态 - 通过名称而非索引访问变量,以获得更清晰的反汇编代码 - 自动将 Java 源代码片段转换为字节码序列 - 搜索各种不同的内容:字符串/数字常量、类和成员引用、指令模式 - 用于反混淆混淆代码的工具 - 旨在崩溃逆向工程工具的特制类文件在 Recaf 中打开时会自动修补 - 特制的 jar/zip 文件会像 JVM 一样读取,绕过可能诱骗逆向工程工具显示错误数据的隐蔽技巧 - 支持自动重命名混淆的类及其成员 - 支持手动重命名类及其成员 *_(并将这些映射导出为多种映射格式,以便在其他工具中使用)_* - 用于简化常见混淆策略的字节码转换器 - 通过 instrumentation 功能附加到运行中的 Java 进程 - 以及更多 完整的功能列表可以在 [用户文档](https://recaf.coley.software/user/index.html) 中找到。 ## 脚本与插件 Recaf 通过模块化 API 暴露其几乎所有功能。可以通过脚本轻松自动化行为,或者在更复杂的情况下通过插件来实现。也可以通过插件添加额外功能,插件可以在提供挂钩的 API 中注册钩子。 要创建自己的脚本或插件,请参阅 [开发者文档](https://recaf.coley.software/dev/index.html),特别是 _"plugins & scripts"_ 章节。 ## 命令行 Recaf 可以作为命令行应用程序运行,这在配合启动时提供的脚本时尤其有用。你可以通过传递 `--help` 作为应用程序参数来查看所有当前的启动参数。 ## 开发环境设置 通过 `git clone https://github.com/Col-E/Recaf.git` 克隆仓库。 在 IDE 中打开项目,或使用 gradle 生成构建。 **IDE**: 1. 从 `build.gradle` 文件导入项目 2. 创建一个运行配置,主类为 `software.coley.recaf.Main` **不使用 IDE**: 1. 运行 `gradlew build` - 输出将位于:`recaf-ui/build/libs/recaf-ui-{VERSION}-all.jar`
标签:Amass, Android, ASM, DNS 反向解析, DSL, JS文件枚举, JVM, Kit, Recaf, URL提取, 二进制分析, 云安全运维, 云资产清单, 代码分析, 凭证管理, 反混淆, 反编译, 后台面板检测, 域名收集, 域名枚举, 字节码编辑器, 开源, 编译器, 网络安全, 蓝队工具, 误配置预防, 调试, 软件开发, 逆向工程, 隐私保护