在 Manus 中运行任何 Skill
一键导入
一键导入
一键在 Manus 中运行任何 Skill
开始使用$pwd:
build-db
// 使用 jar-analyzer-engine 从 JAR/WAR/Class 文件构建 SQLite 分析数据库。这是进行 Java 代码安全审计、方法调用分析的第一步。
$ git log --oneline --stat
stars:130
forks:8
updated:2026年3月20日 18:54
SKILL.md
// 使用 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 | 显示帮助信息 | — |
/ 分隔的包名格式(如 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/ 临时目录\ 或 / 均可