do-analyze
对 jar-analyzer-engine 构建的 SQLite 数据库执行安全审计分析查询。支持方法调用搜索、调用链追踪、Spring 组件分析、字符串搜索、漏洞模式检测等。
使用 jar-analyzer-engine 从 JAR/WAR/Class 文件构建 SQLite 分析数据库。这是进行 Java 代码安全审计、方法调用分析的第一步。
$ npx -y skills add jar-analyzer/jar-analyzer-claude --skill build-db --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/build-dbContext preview
The summary Claude sees to decide when to auto-load this skill.
使用 jar-analyzer-engine 从 JAR/WAR/Class 文件构建 SQLite 分析数据库。这是进行 Java 代码安全审计、方法调用分析的第一步。
name: build-db description: 使用 jar-analyzer-engine 从 JAR/WAR/Class 文件构建 SQLite 分析数据库。这是进行 Java 代码安全审计、方法调用分析的第一步。
使用内置的 `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` | 显示帮助信息 | — |
| 产出 | 路径 | 说明 | |:-----|:-----|:-----| | 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"
运行命令并观察输出,关注以下关键信息:
确认 `jar-analyzer.db` 已生成,并告知用户:
如果用户只需要快速查看某个类的源码,可以使用反编译模式:
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 的 Claude Code 插件,用于 Java JAR/WAR 包静态分析与安全审计。
对 jar-analyzer-engine 构建的 SQLite 数据库执行安全审计分析查询。支持方法调用搜索、调用链追踪、Spring 组件分析、字符串搜索、漏洞模式检测等。