From jar-analyzer-plugin
Builds SQLite analysis database from Java JAR/WAR/Class files using jar-analyzer-engine. Captures classes, methods, calls, inheritance, strings, Spring components for security audits and call analysis.
npx claudepluginhub jar-analyzer/jar-analyzer-claude --plugin jar-analyzer-pluginThis skill uses the workspace's default tool permissions.
使用内置的 `jar-analyzer-engine-1.2.0.jar` 对目标 JAR/WAR/Class 文件进行静态分析,
Executes SQL-based security audits on jar-analyzer.db from JAR analysis, including method call searches, call chains, Spring components, string searches, and vulnerability detection.
Scans codebases for security vulnerabilities using CodeQL data flow and taint tracking analysis. Supports Python, JavaScript/TypeScript, Go, Java, C#, Ruby, Swift.
Decompiles Android APK, XAPK, JAR, AAR files using jadx or Fernflower. Extracts API endpoints from Retrofit, OkHttp, Volley and traces UI-to-network call flows.
Share bugs, ideas, or general feedback.
使用内置的 jar-analyzer-engine-1.2.0.jar 对目标 JAR/WAR/Class 文件进行静态分析,
生成 SQLite 数据库(jar-analyzer.db)。该数据库包含类信息、方法定义、方法调用关系、
继承关系、字符串常量、Spring 组件信息等,是后续所有分析操作的数据基础。
<plugin_dir>/bin/jar-analyzer-engine-1.2.0.jar
<plugin_dir>是本插件的安装目录(即包含bin/、skills/的目录)。 运行前请确认 Java 8+ 已安装且在 PATH 中。
java -jar <plugin_dir>/bin/jar-analyzer-engine-1.2.0.jar [options]
| 参数 | 说明 |
|---|---|
--jar <path>, -j <path> | 目标 JAR/WAR 文件或包含 class 文件的目录路径(必需) |
| 参数 | 说明 | 默认值 |
|---|---|---|
--quick, -q | 快速模式:仅分析方法调用关系,跳过继承/字符串/Spring 分析 | false |
--inner-jars | 解析 JAR 内嵌套的 JAR(如 Spring Boot FatJar) | false |
--fix-class | 使用 FixClassVisitor 修复类名 | false |
--no-fix-impl | 禁用自动方法实现修复(不推荐) | false |
--rt <path> | 指定 rt.jar 路径(用于 JDK 类分析) | 无 |
--white-list <text>, -w <text> | 类/包白名单(仅分析匹配的类),支持文本或文件路径 | 无 |
--white-list-file <path> | 白名单文件路径 | 无 |
--black-list <text>, -b <text> | 类/包黑名单(排除匹配的类),支持文本或文件路径 | 无 |
--black-list-file <path> | 黑名单文件路径 | 无 |
--log-level <level> | 日志级别:DEBUG, INFO, WARN, ERROR | INFO |
--decompile <class>, -d <class> | 反编译模式:反编译指定类并输出源码(不构建数据库) | 无 |
--help, -h | 显示帮助信息 | — |
/ 分隔的包名格式(如 com/example/app)| 产出 | 路径 | 说明 |
|---|---|---|
| SQLite 数据库 | jar-analyzer.db(当前工作目录) | 包含全部分析结果 |
| 临时目录 | jar-analyzer-temp/(当前工作目录) | 解压的 class 文件,分析完成后可清理 |
| 数据类型 | 说明 |
|---|---|
| 类信息 | 类名、父类、接口、注解、访问修饰符 |
| 方法信息 | 方法名、描述符、注解、访问修饰符 |
| 成员变量 | 字段名、类型、访问修饰符 |
| 方法调用关系 | 调用者 → 被调用者的完整映射 |
| 继承/实现关系 | 类继承链、接口实现关系 |
| 方法实现 | 接口方法 → 实现方法的映射 |
| 字符串常量 | LDC 指令加载的字符串及其所在方法 |
| 注解字符串 | 注解中的字符串值 |
| Spring 组件 | Controller、Mapping、参数信息(如适用) |
| Class 文件 | 原始 class 文件的二进制数据 |
java -version
# 确保 Java 8+ 可用
向用户确认待分析的 JAR/WAR 文件路径或目录路径。
根据场景选择合适的参数组合:
完整分析(推荐,适合安全审计):
java -jar <plugin_dir>/bin/jar-analyzer-engine-1.2.0.jar -j <target_path>
快速分析(仅方法调用关系,速度更快):
java -jar <plugin_dir>/bin/jar-analyzer-engine-1.2.0.jar -j <target_path> -q
FatJar 分析(Spring Boot 等嵌套 JAR):
java -jar <plugin_dir>/bin/jar-analyzer-engine-1.2.0.jar -j <target_path> --inner-jars
指定范围分析(仅分析特定包):
java -jar <plugin_dir>/bin/jar-analyzer-engine-1.2.0.jar -j <target_path> -w "com/example/app"
排除第三方库:
java -jar <plugin_dir>/bin/jar-analyzer-engine-1.2.0.jar -j <target_path> -b "org/apache"
运行命令并观察输出,关注以下关键信息:
totalJar: 发现的 JAR 文件数量totalClass: 分析的类数量totalMethod: 分析的方法数量dbSize: 生成的数据库大小Progress: 100%: 构建完成Time elapsed: 构建耗时确认 jar-analyzer.db 已生成,并告知用户:
do-analyze skill 进行后续分析如果用户只需要快速查看某个类的源码,可以使用反编译模式:
java -jar <plugin_dir>/bin/jar-analyzer-engine-1.2.0.jar -j <target_path> -d <fully.qualified.ClassName>
例如:
java -jar <plugin_dir>/bin/jar-analyzer-engine-1.2.0.jar -j app.jar -d com.example.MyController
注意:反编译模式不会构建数据库,仅输出反编译后的 Java 源码到控制台。
jar-analyzer-temp/ 临时目录\ 或 / 均可