jar-analyzer 项目连续 5 年更新,共发布 55 个版本(含 v1 和 v2 版本)完全开源,完全免费
The jar-analyzer project has been continuously updated for 5 years, with 55 versions released, contains v1 and v2 version, completely open source and completely free.
官方文档:https://docs.qq.com/doc/DV3pKbG9GS0pJS0tk
如果贡献代码:fork 本项目到自己仓库,参考 build 部分搭建项目,提交 Pull Requests 即可
感谢以下贡献者(排名不分先后)
一些真实的用户使用评价和反馈,参考 用户评价
Jar Analyzer
- 一个
JAR包分析工具 - 完善美观的
GUI支持(现代化Java GUI界面,可拖拽,明暗橙三主题,十种风格) - 基础分析(支持
Jar/War/Classes输入,支持多文件,支持嵌套FatJar) - 黑白名单配置(构建数据库和搜索功能都支持黑白名单过滤,支持精确类名和包名过滤)
- 反编译(内置
Fernflower改进版本双击反编译,使用JavaParser精确定位方法位置) - 方法调用关系搜索(构建方法调用关系数据库,可搜方法定义与方法引用,支持精确和模糊搜索)
- 方法调用链
DFS算法分析(支持 正向/反向 调用链分析,基于DFS算法的深度调用链追踪) - 简单的模拟
JVM污点分析实现,可验证DFS算法推导方法调用链可行性(beta) - 字符串搜索(搜索
LDC指令,支持模糊搜索和精确搜索,可定位具体方法,联动调用进行分析) Java Web组件入口分析(Java Servlet/Filter组件分析,Spring入口信息一键分析)CFG程序分析(方法内部控制流可视化,基本块划分与展示,异常处理流程分析)JVM栈帧分析(局部变量表与操作数栈状态跟踪,运行时数据流静态分析)- 自定义表达式搜索(基于
SpEL的多种语法组合搜索,用于搜索漏洞Gadget等) - 常见安全分析功能(支持简单的
SCA分析,敏感信息泄漏分析,可能的gadget分析) - 应急响应分析功能(一键提取序列化数据中的恶意
class反编译,一键提取BCEL代码) - 测试功能:不同于
IDEA等工具的源码级调试,实现了字节码级别的单步动态调试(仅初步实现)
为什么选择 Jar Analyzer
- 简单易上手,相比
codeql/tabby简化很多,足够应对90%场景 - 完善且美观的
GUI设计, 只需鼠标点点点,即可进行大多数的代码审计 - 内置常见的
source入口分析,支持动态的sink配置文件规则,方便快捷 - 代码完全开源,构建基于
github actions你可以随意查看功能代码,定制功能 - 本项目跟随主流技术路线,尝试基于
AI做探索(支持mcp和n8n流程等)
静态分析 spring / java web 项目
一键快速搜索(自从 4.0 版本后支持通过配置动态生成 GUI 按钮)
例如一个 Runtime.exec 的动态规则(配好后直接生成按钮和搜索逻辑)
Runtime.exec:
- !!me.n1ar4.jar.analyzer.engine.SearchCondition
className: java/lang/Runtime
methodName: exec
methodDesc: null自从 5.3 版本后支持深度优先搜索算法自动分析漏洞链
自从 5.7 版本后支持简单的模拟 JVM 污点分析验证 DFS 结果(勾选污点分析验证即可)
通过 agent 分析 tomcat
自从 5.0 版本后大幅改进了表达式搜索功能
从 4.0 版本后支持信息泄露检查(部分正则来源于 HaE 项目)
从 4.0 版本开始可以和 IDEA 一样快捷键两次 shift 调出 Lucene 全局搜索
自从 4.2 版本后支持黑暗主题切换
自从 5.10 版本后支持 MCP 请参考文档 MCP
结合 jar-analyzer mcp 可以在 n8n 平台使用,文档:n8n-doc
使用 jar-audit-agent skill 配合 jar-analyzer 进行 Java 代码审计
该功能正在开发中,不够稳定和完善,欢迎尝试使用,一起优化:文档
感谢 0cat https://github.com/0cat-r
- 场景01:从大量
JAR中分析某个方法在哪个JAR里定义(精确到具体类具体方法) - 场景02:从大量
JAR中分析哪里调用了Runtime.exec方法(精确到具体类具体方法) - 场景03:从大量
JAR中分析字符串${jndi出现在哪些方法(精确到具体类具体方法) - 场景04:从大量
JAR中分析有哪些Spring Controller/Mapping信息(精确到具体类具体方法) - 场景05:从大量
JAR中分析是否存在Apache Log4j2漏洞(匹配所有CVE漏洞) - 场景06:从大量
JAR中分析是否有使用FASTJSON 47/68/80等存在漏洞的版本 - 场景07:从大量
JAR中分析各种常见的Java安全漏洞调用出现在哪些方法 - 场景08:你需要深入地分析某个方法中
JVM指令调用的传参(带有图形界面) - 场景09:你需要深入地分析某个方法中
JVM指令和栈帧的状态(带有图形界面) - 场景10:你需要深入地分析某个方法的
Control Flow Graph(带有图形界面) - 场景11:你有一个
Tomcat需要远程分析其中的Servlet/Filter/Listener信息 - 场景12:你有一个序列化数据里面包含了恶意的
Class字节码需要一键提取分析 - 场景13:你有一个
BCEL格式的字节码需要一键反编译代码分析 - 场景14:你有一大堆
Jar文件或目录需要全部批量反编译导出代码 - 场景15:从大量
JAR中分析IP地址/手机号/邮箱等各种信息泄露 - 场景16:需要将
JAR分析加入到已有的工作流(CICD/AI workflow等) - 测试功能:字节码指令级别的调试
- 自从
2.14版本之后支持了全屏显示的功能 - 自从
2.15版本后支持代码区域字符串搜索功能 - 自从
2.15版本后支持通过HTTP分析远程文件 - 自从
2.16版本后支持一键导出反编译JAVA代码 - 自从
2.17版本后支持字节码指令级别的远程调试(参考 示例图) - 自从
2.17版本后支持从序列化数据一键提取恶意JAVA代码(参考 示例图) - 自从
2.18版本后支持HTTP API查询接口(参考 示例图) - 自从
2.19版本后支持启动时配置10种UI主题(LookAndFeel) - 自从
2.19版本后支持实时的CPU占用和内存的折线图展示(参考 示例图) - 自从
2.20版本后支持选中字符串全局高亮显示(参考 示例图) - 自从
2.21版本后支持分析配置类和包名的白名单 - 自从
2.21版本后支持左侧文件数使用CTRL+F打开类名搜索(参考 示例图) - 自从
2.21版本后新增内置开启ZGC的JRE 21环境(仅包含核心功能) - 自从
2.23版本后新增SCA分析(参考 示例图1 示例图2) - 自从
2.24版本后改善SCA分析逻辑(显著提高扫描效率) - 自从
3.0版本后支持生成HTML方法调用图(参考 示例图) - 自从
3.0版本后支持代码区域选中字符串右键搜索(参考 示例图) - 自从
3.0版本后支持方法右键添加备忘录(参考 示例图) - 自从
3.0版本后新增多种常见的JAVA RCE漏洞调用一键搜索功能 - 自从
3.1版本后支持BCEL字符串一键反编译Java代码(参考 示例图) - 自从
3.1版本后远程Tomcat分析改为premain方式(参考 示例图) - 自从
3.2版本后远程Tomcat分析功能重写和增强(参考 示例图) - 自从
4.0版本后方法跳转的定位大幅优化和精确(使用JavaParser库实现) - 自从
4.0版本后支持一键的信息泄露检查(参考 示例图) - 自从
4.0版本后支持类似IDEA的全局搜索(基于Lucene支持代码片段) - 自从
4.0版本后支持不限制次数的前进后退步骤(记录所有的操作信息) - 自从
4.0版本批量反编译Jar导出源码功能修复增强 - 自从
4.0版本后新增多个图标GUI界面进一步美化 - 自从
4.1版本后内置JD-GUI可以跳过分析快速查看 - 自从
4.2版本后支持黑暗主题切换 - 自从
4.4版本后支持不跳转情况下右键预览方法代码 - 自从
5.0版本之后Panel支持拖动拉伸缩小 - 自从
5.0版本之后支持了Interceptor/Servlet/Filter/Listener分析 - 自从
5.0版本之后大幅改进了表达式搜索相关功能 - 自从
5.1版本之后支持了简单的Gadget分析 - 自从
5.3版本后支持深度优先搜索算法自动分析漏洞链 - 自从
5.7版本后支持污点分析(beta)并在5.8版本修复和完善 - 自从
5.10版本后支持了MCP请参考文档 MCP
有问题和建议欢迎提 issue 更多的功能正在开发中 前往下载
(01) 我发现 jar-analyzer 性能方面很出色(某知名安全研究员)
(02) 某些场景 jar-analyzer 的表达式功能比 codeql 更好用(某安全研究员)
(03) 我使用 jar-analyzer 挖了不少的 0 day 漏洞,推荐使用 (某知名安全研究员)
(04) 大佬的 jar-analyzer 很好用 (某乙方安全工程师)
(05) 师傅的 jar-analyzer 太强了 (某知名安全研究员)
(06) 刚才老板大力表扬了 jar-analyzer 说超级好用(某甲方安全工程师)
(07) 大佬,先说一句 jar-analyzer 真好用(某乙方安全工程师)
(08) jar-analyzer 最好用(某乙方安全工程师)
(09) Java 漏洞挖掘神器 jar-analyzer(某乙方安全工程师)
(10) 我用 jar-analyzer 辅助挖到了价值 10w 的 0 day(某年入百万安全研究员)
(11) jar-analyzer 可以快速筛选符合的 gadget 辅助挖掘新链(知名项目 java-chains 创始人)
(12) jar-analyzer 在手 java 漏洞不愁(某安全公司总裁)
(13) 拼尽全力,无法战胜(某大甲方安全工程师,有丰富的代码审计和 SAST 工具开发经验)
(14) 这几天已经用这个挖到了几个洞了,对于新手很友好(某安全工程师)
(15) DFS 漏洞利用链分析功能完整,用起来比 tabby 和 codeql 都要简单(某安全工程师)
(16) 使用 jar-anlyzer mcp 配合 n8n 工作流,确实能挖到洞 (某安全专家)
表达式搜索是 jar-analzyer 重要的高级功能:可以自定义多种条件组合搜索方法
表达式搜索位于首页以及 Advance 的 Plugins 部分
注意:如果表达式效率过低,可能是默认内存过小原因,可以考虑修改启动脚本 -Xms 参数
set "java_args=-XX:+UseG1GC -Xms2g -XX:MaxGCPauseMillis=200 %other_args%"- 4ra1n (https://github.com/4ra1n) (项目作者)
- whw1sfb (https://github.com/whwlsfb) (第一次贡献,重要 AI 贡献)
- 0cat (https://github.com/0cat-r) (重要 AI 贡献)
- Honey Baby (https://github.com/Gosiu) (多次重要贡献)
- fantasy (https://github.com/ly-test-fuzz)
- phil (https://github.com/sensensen404)
- MyDynasty (https://github.com/MyDynasty)
- TianMing2018 (https://github.com/TianMing2018)
- hacats (https://github.com/hacats)
- R0ser1 (https://github.com/R0ser1)
- su18 (https://github.com/su18)
- 7eleven (https://github.com/7-e1even)
- L-codes (https://github.com/L-codes) (AI 贡献)
- osword (https://github.com/zhzhdoai) (AI 贡献)
Jar Analyzer V1最初版诞生于2022.11.27Jar Analyzer V2在2023.10.23第一次提交Jar Analyzer v2正式版在2023.12.07发布Jar Analyzer V2在2024.08.15发布3.0版本Jar Analyzer V2在2024.09.30总Star破千Jar Analyzer V2在2024.11.07发布4.0版本Jar Analyzer V2在2025.01.07日下载量破万
参考 性能测试文档 对比分析 G1GC 和 ZGC 情况
注意:首先对你的 IDEA 进行设置(本项目不支持 Eclipse/VS Code 等 IDE 环境)
注意:过高版本的 IDEA 可能删除了该功能,可以在插件市场搜索 Swing UI Designer 安装
编译和构建过程如下:(以 Windows 为例其他环境类似)
由于 jar-analyzer 历史提交过大,请使用 --depth 1 加速克隆
git clone --depth 1 https://github.com/jar-analyzer/jar-analyzer核心项目构建
- 重要:确保你安装了
JDK 8 64位(建议OpenJDK) - 重要:如果你修改了代码请确保在
IDEA环境中至少启动一次(生成GUI代码) - 重要:确保你安装了
Maven 3.X(一般IDEA已自带) - 可选:完善贡献者信息:检查修改
thanks.md/thanks.txt和pom.xml - 可选:使用
cmake构建native目录生成dll文件放入resources
MCP 构建
- 确保安装了
golang 1.24及以上版本 - 打开
mcp目录即可(标准go mod项目) - 可以基于
gox目录编译多平台可执行文件(开源gox修改版)
其他组件构建
- 可选:构建
agent子项目cd agent && package.bat - 可选:使用
winres和gcc构建启动exe文件和图标信息 - 可选:完整发版参考
build.py和build.yml文件
以上是基础功能,进阶和测试性的功能请参考:进阶测试性功能
例如类似 OD/GDB 的指令级 GUI 调试(未完成)
CTRL+X方法交叉引用 快速跳转方法caller和callee页面CTRL+F代码区域搜索 打开搜索面板 支持next和prev选项CTRL+F文件树区搜索 显示搜索面板 搜索文件树中的类名以及内部类
支持以下:
- default (默认使用 类似
IDEA主题) - metal
- win (仅
Windows支持) - win-classic (仅
Windows支持) - motif
- mac (仅
MacOS支持) - gtk (仅某些
Linux支持) - cross
- aqua (仅
MacOS支持) - nimbus
在启动时指定:java -jar jar-analyzer.jar gui -t [theme]
例如:java -jar jar-analyzer.jar gui -t win-classic
或者修改启动脚本的代码
set "theme_name=default"早期文章视频以及解释一些内部的原理和注意事项
- [GHSA-43rf-3hm4-hv5f] 反编译恶意的 CLASS 文件可能导致程序不可用
- [GHSA-x5h2-78p8-w943] Jar Analyzer 2.13 版本之前存在 SQL 注入漏洞
- [GHSA-jmcg-r2c5-7m29] Jar Analyzer 存在 ZIP SLIP 漏洞(最坏情况可导致 RCE 风险)
- [GHSA-h6vc-3rcp-p7qp] 表达式分析功能中的 SpEL 注入漏洞可导致远程代码执行
不再接受用户的输入导致的安全问题,除非恶意的输入 class/jar 文件可能导致的安全问题
不再接收 GUI 中可能的漏洞,不认为通过 Webswing 等方式暴露到 web 端会产生漏洞
注意:当 Jar 数量较多或巨大时 可能导致临时目录和数据库文件巨大 请确保足够的空间
有 UI 兼容性问题请查看 ISSUE 部分的置顶






























