現在のページでサポートされている言語:

简体中文

记一次Java项目逆向过程

ReverseJavaRecafJD-GUI010 Editor
# Note

文字数 2274

約かかる時間 9 minutes

2026年4月23日(木) 14:07:00 UTC

记一次Java项目逆向分析过程,以及各类相关工具的玩法

工具

  1. JD-GUI(可选,轻量的Java/.class源码还原查看工具,不具备编辑功能)
  2. Recaf:源码还原、源码编辑(Java+汇编)、导出(完整项目/单.class文件)
  3. 010 Editor:底层字节码编辑
后补:Recaf的搜索功能更强大,可以一步到位直接搜接口关键词,跳过下方的分析源码步骤

分析源码+定位目标

由于在JD-GUI的搜索功能中,搜索结果不包含jar包中的lib目录,无法直接根据前端请求的目标接口作为关键词直接搜索,此时进行人工分析:

  1. 把jar包甩到JD-GUI,从BOOT-INF/classes目录切入,查找包文件名中含tolgee关键词的包
  2. 找到io.tolgee,展开componentconfiguration等包,查找Security和License名称相关的.class文件
  3. 定位到符合条件的WebSecurityConfig.class,进一步分析接口实现逻辑
  4. 通过分析方法引用关系,最终定位到核心校验逻辑代码位于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
  1. 打开Recaf定位到之前找到的目标.class,直接以Java代码编辑;或是更推荐的:在左侧文件目录中,右键文件Edit->Edit class in assembler进入汇编模式
  2. 修改内部核心判断方法,编辑(伪造)数据
关于RecafAssembler模式: 在一般源码视图操作代码时,经常在右上角看到莫名其妙的红色报错,最好是切换到Assembler(汇编)模式进行编辑

导出 / 替换,完成

完整导出.jar
  1. 左上角File->Export applicati导出项目为完整的.jar文件
  2. 直接运行新的.jar文件
仅导出.class
  1. 或是直接右击源码区域,导出为独立的.class文件
  2. 以压缩包方式打开源项目.jar,精准定位到代码核心逻辑的.class文件
  3. 拖拽编辑好的.class文件,覆盖目标

野蛮方式

  1. Recaf中找到核心代码逻辑所在文件
  2. 直接打开010 Editor,载入目标.class文件
  3. 右上角模板->模板储存库,安装CLASSAdv.bt模板
  4. 在底部面板按F5,应用模板
  5. 在底部模板工具中可以看到,列出了解析到的.class文件的methods(方法)
  6. 展开核心逻辑方法的methods->attributes,点击code定位到代码对应的字节码(红色背景区域)
  7. 把要最终要修改为的Java代码,扔给AI转成字节码,替换到红色背景区
  8. 注意:如果编辑后的字节码长度出现了变化,需要相应计算并修改code_length值以及attribute_length值。如果嫌麻烦可以填充00以保持原来的各项length,但运行时易报错。
  9. 保存.class文件,以压缩包拖拽替换目标方式,替换回源jar包内部

Copyright © 2022-2026 KAZE. All rights reserved.