CHANGE LOG
首页

一键快速搜索(自从 4.0 版本后支持通过配置动态生成 GUI 按钮)

例如一个 Runtime.exec 的动态规则(配好后直接生成按钮和搜索逻辑)
Runtime.exec:
- !!me.n1ar4.jar.analyzer.engine.SearchCondition
className: java/lang/Runtime
methodName: exec
methodDesc: null静态分析 spring 项目

通过 agent 分析 tomcat

自定义表达式搜索

从 4.0 版本后支持信息泄露检查(部分正则来源于 HaE 项目)

从 4.0 版本开始可以和 IDEA 一样快捷键两次 shift 调出 Lucene 全局搜索

自从 4.0 版本开始修复增强批量反编译 Jar 导出功能

自从 4.1 版本后支持选择启动引擎和使用 JD-GUI 快速查看两种方式
JD-GUI 可以快速反编译和查看字节码,用于某些场景
Jar Analyzer 的用途
JAR 中分析某个方法在哪个 JAR 里定义(精确到具体类具体方法)JAR 中分析哪里调用了 Runtime.exec 方法(精确到具体类具体方法)JAR 中分析字符串 ${jndi 出现在哪些方法(精确到具体类具体方法)JAR 中分析有哪些 Spring Controller/Mapping 信息(精确到具体类具体方法)JAR 中分析是否存在 Apache Log4j2 漏洞(匹配所有 CVE 漏洞)JAR 中分析是否有使用 FASTJSON 47/68/80 等存在漏洞的版本JAR 中分析各种常见的 Java 安全漏洞调用出现在哪些方法JVM 指令调用的传参(带有图形界面)JVM 指令和栈帧的状态(带有图形界面)Control Flow Graph (带有图形界面)Tomcat 需要远程分析其中的 Servlet/Filter/Listener 信息Class 字节码需要一键提取分析BCEL 格式的字节码需要一键反编译代码分析Jar 文件或目录需要全部批量反编译导出代码JAR 中分析 IP 地址/手机号/邮箱等各种信息泄露Jar Analyzer 是一个分析 Jar 文件的 GUI 工具:
Jar 以及批量 Jars 分析LDC 指令定位 Jar 中的字符串Spring Controller/MappingCFG 分析结果Stack Frame 分析结果Tomcat 中的 Servlet 等组件SQL 语句进行高级分析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 可以跳过分析快速查看更多的功能正在开发中
有问题和建议欢迎提 issue
前往下载
方法调用关系

方法调用搜索 (支持 equals/like 选项,支持黑名单过滤)

Jar Analyzer 2.15 版本以后支持代码区域的搜索

Jar Analyzer 2.15 版本以后支持远程 Jar 文件加载

Jar Analyzer 2.17 版本以后支持从序列化数据中一键提取恶意代码

Jar Analyzer 2.18 版本以后支持 HTTP API
示例图 1 示例图 2
Jar Analyzer 2.19 版本以后支持实时的 CPU 和内存占用分析

Jar Analyzer 2.20 版本后支持选中字符串全局高亮显示

表达式搜索是 jar-analzyer 重要的高级功能:可以自定义多种条件组合搜索方法
表达式搜索位于首页以及 Advance 的 Plugins 部分
详细文档
想深入交流可以发联系方式到邮箱后我拉你进群:ZW15aXFpbmdAZ21haWwuY29t
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 版本目前版本 4.X 计划每月更新一次(一般情况下在当天的 0 点发布)
如果当天是非工作日则延期至之后第一个工作日
参考 性能测试文档 对比分析 G1GC 和 ZGC 情况
注意:当 Jar 数量较多或巨大时可能导致临时目录和数据库文件巨大
有 UI 兼容性问题请查看 ISSUE 部分的置顶
注意:首先对你的 IDEA 进行设置(本项目不支持 Eclipse/VS Code 等 IDE 环境)

编译和构建过程如下:(以 Windows 为例其他环境类似)
JDK 8 64位 (无论 Oracle JDK 或 OpenJDK 都可)IDEA 环境中至少启动一次(生成 GUI 代码)Maven 3.X 并正确配置了 PATH 变量(需要使用 mvn 命令)Contributor 和 ContributorMD 生成最新贡献者信息agent 子项目 cd agent && package.batpackage.batcmake 构建 native 目录生成 dll 文件放入 resourceswinres 和 gcc 构建启动 exe 文件和图标信息build.py 和 build.yml 文件以上是基础功能,进阶和测试性的功能请参考:进阶测试性功能
例如类似 OD/GDB 的指令级 GUI 调试(未完成)

CTRL+X 方法交叉引用 快速跳转方法 caller 和 callee 页面CTRL+F 代码区域搜索 打开搜索面板 支持 next 和 prev 选项CTRL+F 文件树区搜索 显示搜索面板 搜索文件树中的类名以及内部类支持以下:
IDEA 主题)Windows 支持)Windows 支持)MacOS 支持)Linux 支持)MacOS 支持)在启动时指定:java -jar jar-analyzer.jar gui -t [theme]
例如:java -jar jar-analyzer.jar gui -t win-classic
或者修改启动脚本的代码
set "theme_name=default"文档
文档
早期文章视频以及解释一些内部的原理和注意事项
文档
文档
文档
This project is developed using JetBrains IDEA. Thanks to JetBrains for providing me with a free license, which is a strong support for me.