2200 Star!功能强大的 Java 字节码编辑器!

Stella981
• 阅读 829

【导语】:Recaf是一款功能十分强大的Java字节码编辑器,基于objectweb的ASM构建,可以更好地显示文件的属性,并为字节码编辑提供方便。

简介

Recaf是一个易于使用的现代的Java字节码编辑器,它抽象了Java程序的复杂性,自动处理栈帧和常量池的生成,它是一种辅助编辑工具,提供修改字节码的界面,可以提高工作效率。当然,使用这个工具之前,你需要对Java字节码结构有一定的了解。

2200 Star!功能强大的 Java 字节码编辑器!

项目地址:
https://github.com/Col-E/Recaf

下载安装

Recaf是使用Java编写的一个工具,其本质就是一个jar包,依赖Java环境,同时其UI使用JavaFX构建,所以使用前需先确保环境配置正确。

它的下载安装十分简单,可以选择下载源码导入IDE工具后自行编译,官方也提供了命令build,直接执行即可。最方便的还是直接下载已经编译好的jar包,小秋下载了2.17.0版本试用,得到目标jar包后,执行以下命令即可启动recaf:

java –jar recaf-2.17.0-J8-jar-with-dependencies.jar

启动后,可以在系统信息页面检测环境是否正确,红框中的值都为true:

2200 Star!功能强大的 Java 字节码编辑器!

简单使用

导入jar包,并随意打开任意一个反编译后的Java类:

2200 Star!功能强大的 Java 字节码编辑器!

右键编辑字节码:

2200 Star!功能强大的 Java 字节码编辑器!

可以添加JavaDoc或源码,在界面中看到相应效果,修改字节码后,相应的Java文件也会实时同步修改:

2200 Star!功能强大的 Java 字节码编辑器!

2200 Star!功能强大的 Java 字节码编辑器!

2200 Star!功能强大的 Java 字节码编辑器!

支持自定义配置,包括主题、语言、字体、快捷键等: 2200 Star!功能强大的 Java 字节码编辑器!

支持文件内容搜索、类搜索、引用变量搜索等: 2200 Star!功能强大的 Java 字节码编辑器!

开源前哨 日常分享热门、有趣和实用的开源项目。参与维护 10万+ Star 的开源技术资源库,包括:Python、Java、C/C++、Go、JS、CSS、Node.js、PHP、.NET 等。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
限时发布!纯手打“RocketMQ笔记”
1JVM的内存区域布局java代码的执行步骤有三点java源码文件编译器字节码文件字节码文件JVM机器码机器码系统CPU执行JVM执行的字节码需要用类加载来载入;字节码文件可以来自本地文件,可以在网络上获取,也可以实时生成。就是说你可以跳过写java代码阶段,直接生成字节码交由JVM执行其中Jav
Stella981 Stella981
3年前
Python Challenge Level 18
初学Python,挑战一下流行的PythonChallenge,很不幸,卡在了18关~~被字符字节码之间的转换搞得焦头烂额,不过终于搞定了还是很happy的~~~主要的问题就是16进制形式的字符如何转成字节码(注意:不是encoding)如:\'89','50','4e','47','0d','0a','1a','0a','00
Wesley13 Wesley13
3年前
Java是如何实现跨平台的
一.Java是如何实现跨平台的1.我们编写的Java源码,编译后会生成一种.class文件,称为字节码文件2.Java虚拟机JVM就是负责将字节码文件翻译成特定平台下的机器码然后运行。也就是说,只要在不同平台上安装对应的JVM,就可以运行字节码文件,运行我们编写的Java程序。!(https:/
Wesley13 Wesley13
3年前
Java虚拟机(一):JVM简介
JVM简介Java虚拟机(JVM)是由Java虚拟机规范定义的,其上运行的是字节码指令集。这种字节码指令集包含一个字节的操作码(opcode),零至多个操作数(oprand),虚拟机规范明确定义了每种字节码指令完成的功能是什么以及需要多少个操作数。Java虚拟机上运行的class文件,这个文件中包含字节码指令流以及类定义的信息,所以Java虚
Wesley13 Wesley13
3年前
Java字节码增强探秘
1.字节码1.1什么是字节码?Java之所以可以“一次编译,到处运行”,一是因为JVM针对各种操作系统、平台都进行了定制,二是因为无论在什么平台,都可以编译生成固定格式的字节码(.class文件)供JVM使用。因此,也可以看出字节码对于Java生态的重要性。之所以被称之为字节码,是因为字节码文件由十六进制值组成,
可莉 可莉
3年前
2200 Star!功能强大的 Java 字节码编辑器!
【导语】:Recaf是一款功能十分强大的Java字节码编辑器,基于objectweb的ASM构建,可以更好地显示文件的属性,并为字节码编辑提供方便。简介Recaf是一个易于使用的现代的Java字节码编辑器,它抽象了Java程序的复杂性,自动处理栈帧和常量池的生成,它是一种辅助编辑工具,提供修改字节码的界面,可以提高工作效率。当然,使用这个工具
京东云开发者 京东云开发者
9个月前
打开java语言世界通往字节码世界的大门——ASM字节码操作类库
一、ASM介绍1、ASM是什么ASM是一个通用的Java字节码操作和分析框架。它可以用于修改现有类或直接以二进制形式动态生成类。ASM提供了一些常见的字节码转换和分析算法,可以从中构建定制的复杂转换和代码分析工具。ASM提供了与其他Java字节码框架类似的