Languages supported by the current page:
简体中文记一次Java项目逆向过程
ReverseJavaRecafJD-GUI010 Editor
# Note
Word count 2274
Approximately takes time 9 minutes
Thu, April 23, 2026 at 14:07:00 UTC
记一次Java项目逆向分析过程,以及各类相关工具的玩法
工具
- JD-GUI(可选,轻量的Java/.class源码还原查看工具,不具备编辑功能)
- Recaf:源码还原、源码编辑(Java+汇编)、导出(完整项目/单.class文件)
- 010 Editor:底层字节码编辑
后补:
Recaf的搜索功能更强大,可以一步到位直接搜接口关键词,跳过下方的分析源码步骤分析源码+定位目标
由于在JD-GUI的搜索功能中,搜索结果不包含jar包中的lib目录,无法直接根据前端请求的目标接口作为关键词直接搜索,此时进行人工分析:
- 把jar包甩到
JD-GUI,从BOOT-INF/classes目录切入,查找包文件名中含tolgee关键词的包 - 找到io.tolgee,展开component和configuration等包,查找Security和License名称相关的.class文件
- 定位到符合条件的
WebSecurityConfig.class,进一步分析接口实现逻辑 - 通过分析方法引用关系,最终定位到核心校验逻辑代码位于
ee-app.jar/io.tolgee/ee/service/eeSubscription/EeSubscriptionServiceImpl.class以及ee-app.jar/io.tolgee/ee/model/EeSubscription.class

修改源数据
一般方式
导出时如果项目比较大可能导致内存溢出,所以最好在启动Recaf时就额外多分配点内存
java -Xmx4G -jar recaf-4x-alpha-win-86-x64.jar
- 打开
Recaf定位到之前找到的目标.class,直接以Java代码编辑;或是更推荐的:在左侧文件目录中,右键文件Edit->Edit class in assembler进入汇编模式
- 修改内部核心判断方法,编辑(伪造)数据
关于
Recaf的Assembler模式:
在一般源码视图操作代码时,经常在右上角看到莫名其妙的红色报错,最好是切换到Assembler(汇编)模式进行编辑导出 / 替换,完成
完整导出.jar
- 左上角
File->Export applicati导出项目为完整的.jar文件 - 直接运行新的.jar文件
仅导出.class
- 或是直接右击源码区域,导出为独立的.class文件
- 以压缩包方式打开源项目.jar,精准定位到代码核心逻辑的.class文件
- 拖拽编辑好的.class文件,覆盖目标
野蛮方式
- 在
Recaf中找到核心代码逻辑所在文件 - 直接打开010 Editor,载入目标.class文件
- 右上角
模板->模板储存库,安装CLASSAdv.bt模板 - 在底部面板按F5,应用模板
- 在底部模板工具中可以看到,列出了解析到的.class文件的methods(方法)

- 展开核心逻辑方法的
methods->attributes,点击code定位到代码对应的字节码(红色背景区域)
- 把要最终要修改为的Java代码,扔给AI转成字节码,替换到红色背景区
- 注意:如果编辑后的字节码长度出现了变化,需要相应计算并修改
code_length值以及attribute_length值。如果嫌麻烦可以填充00以保持原来的各项length,但运行时易报错。 - 保存.class文件,以压缩包拖拽替换目标方式,替换回源jar包内部