当前位置: 首页 > news >正文

我开发了一个自动还原源码的小工具

最近我花了一周的时间,折腾出了一个我一直想要的工具 —— 自动还原源码

在做逆向分析的时候,大家应该都知道一个痛点:
很多 JAR 包、Class 文件,反编译后往往要么缺少 import,要么格式乱七八糟,甚至报错不断。手工去修复不仅效率低,还特别容易出错。一个代码类几十个错误,最让我头疼的是如果项目比较大,太多的代码报错,你搞一周估计也搞不定,但是开发工具出来,基本5分钟可以搞定源码生成,但是对于逻辑错误和代码本身写的有问题的目前还识别不了,目前可以解决98%的报错,剩余的2%还需要人工辅助结合开发工具打包测试验证。

于是,我想着干脆自己写一个小工具,把这些繁琐的步骤自动化掉。

经过几天的研究和尝试,我终于搞出了一个“自动还原源码”的小工具:

V1.0版本目前解决了哪些功能?

  • 支持批量处理:上传后即可自动扫描 class 文件;

  • 自动补全 import:尽量恢复原有的依赖结构;

  • 一键格式化:源码输出更整洁清晰;

  • 解决代码实体类序列化问题

  • 解决逆向桥接问题

  • 解决lombok表达式找不到属性问题,和mybatiesplus 表达式没有条件问题

  • 界面简单直观:我甚至做了一个小 UI,点点按钮就能逆向出来。

虽然还没公开放出来,但目前已经可以自己使用了。
效果比我预想的好很多,至少能大幅度节省逆向还原源码的时间。

未来可能会继续完善,比如:

  • 做成插件化,支持更多格式;

  • 加上智能修复机制,让报错率更低(后面会接入AI模型改进和修复,因为单纯的代码没有工具借助做到百分百去分析代码不报错,并且能打包出来目前还是很有挑战性的);

  • 甚至考虑开发出来给需要的人用。

  • 接入AI模型分析和可视化

这是我的自研项目,也算是一次探索:


能不能通过自动化 + AI,减少逆向工程中的重复劳动,把人解放出来,专注于更有价值的分析?

直接看效果:

直接上传自动化解析就行

🧱 架构分阶段开发方案

✅ 第一阶段:基础反编译功能

  • 输入 .jar/.class,调用 jadx 输出 .java 源文件
  • CLI 封装:python or java 脚本调用外部命令
  • 输出目录结构与包名一致

✅ 第二阶段:自动补全 import

  • 用 JavaParser 遍历 AST:
    • 提取未解析的类名
    • 基于 classpath 搜索全名(可选扫描 rt.jar 或当前项目)
  • 自动写入 import

✅ 第三阶段:格式化与语法验证

  • 使用 google-java-format 格式化
  • 用 javac 或 Eclipse JDT 校验语法错误,自动定位错误类

✅ 第四阶段:构建 & 打包

  • 自动生成 pom.xml(或 Gradle)
  • 自动调用 mvn clean package
  • 输出编译结果(构建成功/失败、异常信息)

✅ 第五阶段(增强):类关系图

  • 使用 Python 调用 Graphviz 渲染调用关系
  • 或 Java 用 ASM、javassist 分析字节码关系

📌 目前工具还在内测阶段,不想透露太多实现细节。
但如果你对这个方向感兴趣,可以留言交流 👋。

http://www.xdnf.cn/news/1407619.html

相关文章:

  • AI辅助编程日记和chat历史开源Series 1:VSCode + GitHub Copilot 自动下载及安装软件
  • 《打破 “慢“ 的黑箱:前端请求全链路耗时统计方案》
  • Vue3 响应式基础
  • 前端学习——JavaScript基础
  • 创维LB2004_安装软件教程
  • 37. 解数独
  • GaRe:面向非约束户外照片集的可重光照 3D 高斯溅射技术简要解析
  • Android开发-活动页面
  • C# .Net8 WinFormsApp使用日志Serilog组件
  • c++ Effective c++ 条款5
  • 机器学习之线性回归
  • 数据结构02:排序算法
  • PyQt5 进度条详细示例与性能优化
  • 电商系统的分布式事务调优
  • Knit-易用的prompt管理和调试工具
  • 第六章:透明度-Transparency《Unity Shaders and Effets Cookbook》
  • io进程线程;标准IO;0831
  • 【嵌入式】【调用函数图】手动绘制函数调用状态机
  • 【优先算法--前缀和】
  • 3DES加解密的算法Java Python Golang
  • CVPR上的多模态检索+视频理解,LLM助力提效翻倍
  • 8.1【Q】VMware相关
  • 吴恩达机器学习作业十一:异常检测
  • 大模型——利用RAG构建智能问答平台实战
  • 在Ubuntu服务器上安装KingbaseES V009R002C012(Orable兼容版)数据库过程详细记录
  • Qwen3_moe模型代码解析
  • FreeRTOS实战:任务创建与调度详解
  • 【MySQL自学】SQL语法全解(上篇)
  • 【PS实战】逐步打造静物的艺术色调(大学作业)
  • 从零开始搭建使用 TDengine:新用户快速上手指南