jar-analyzer
jar-analyzer copied to clipboard
Jar Analyzer - 一个JAR包分析工具,SCA漏洞分析,批量分析JAR包,方法调用关系搜索,字符串搜索,Spring组件分析,CFG程序分析,JVM栈帧分析,进阶表达式搜索,字节码指令级的动态调试分析,反编译JAR包一键导出,...
Jar-Analyzer V2
CHANGE LOG
Jar Analyzer 是一个分析 Jar 文件的 GUI 工具:
- 支持大
Jar以及批量Jars分析 - 方便地搜索方法之间的调用关系
- 分析
LDC指令定位Jar中的字符串 - 一键分析
Spring Controller/Mapping - 对于方法字节码和指令的高级分析
- 一键反编译,优化对内部类的处理
- 一键生成方法的
CFG分析结果 - 一键生成方法的
Stack Frame分析结果 - 远程分析
Tomcat中的Servlet等组件 - 自定义
SQL语句进行高级分析 - 集成
ClazzSearcher项目作为命令行分析版本 - 允许从字节码层面直接修改方法名(测试功能)
- 自从
2.14版本之后支持了全屏显示的功能 - 自从
2.15版本后支持代码区域字符串搜索功能 - 自从
2.15版本后支持通过HTTP分析远程文件
更多的功能正在开发中
有问题和建议欢迎提 issue
Jar Analyzer 的用途
- 场景1:从大量
JAR中分析某个方法在哪个JAR里定义(精确到具体类具体方法) - 场景2:从大量
JAR中分析哪里调用了Runtime.exec方法(精确到具体类具体方法) - 场景3:从大量
JAR中分析字符串${jndi出现在哪些方法(精确到具体类具体方法) - 场景4:从大量
JAR中分析有哪些Spring Controller/Mapping信息(精确到具体类具体方法) - 场景5:你需要深入地分析某个方法中
JVM指令调用的传参(带有图形界面) - 场景6:你需要深入地分析某个方法中
JVM指令和栈帧的状态(带有图形界面) - 场景7:你需要深入地分析某个方法的
Control Flow Graph(带有图形界面) - 场景8:你有一个
Tomcat需要远程分析其中的Servlet/Filter/Listener信息 - 场景9:查实现接口
A继承接口B类注解C且方法名test方法内调用D类a方法的方法
相关
虽然 Jar Analyzer 使用了简易的 RASP 进行保护,但仍然可能存在安全漏洞,我们会第一时间进行修复
漏洞公告
- [GHSA-43rf-3hm4-hv5f] 反编译恶意的 CLASS 文件可能导致程序不可用
- [GHSA-x5h2-78p8-w943] Jar Analyzer 2.13 版本之前存在 SQL 注入漏洞
- [GHSA-jmcg-r2c5-7m29] Jar Analyzer 存在 ZIP SLIP 漏洞(最坏情况可导致 RCE 风险)
文章
视频
BUILD
编译和构建过程如下:
- 构建核心项目
mvn -B clean package -DskipTests --file pom.xml - 构建
agent子项目mvn -B clean package -DskipTests --file agent\pom.xml - 构建命令行子项目
mvn -B clean package -DskipTests --file class-searcher\pom.xml - 构建
rasp子项目mvn -B clean package -DskipTests --file jar-analyzer-rasp\pom.xml - 使用
cmake构建native目录的C代码生成dll文件放入resources - 使用
winres和gcc构建启动exe文件和图标信息 - 参考
build.py和build.yml文件进行最终的文件合并和版本构建
截图
方法调用关系

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

指令分析

CFG 分析

带图形的 Stack Frame 分析

分析 Spring Framework

从 2.8 版本开始支持 tomcat 分析(一检查杀内存马)

自定义 SQL 语句任意分析

Jar Analyzer 2.12 版本以后使用自研 RASP 保护程序
(Runtime Application Self-Protection)

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

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

快捷键
CTRL+X方法交叉引用 快速跳转方法caller和callee页面CTRL+F代码区域搜索 打开搜索面板 支持next和prev选项
命令行
文档
表达式
文档
注意
文档
子项目
文档
其他
文档
参考
文档
Thanks
This project is developed using JetBrains IDEA. Thanks to JetBrains for providing me with a free license, which is a strong support for me.