-
🔧 多工具类型支持
- ☕ Java 应用 (Java 8/11/17) - 支持 JAR 包执行,多版本 Java 环境
- 🖥️ 终端工具 - 在终端中打开工具目录,支持命令行工具
- 🌐 Web 应用/网站 - 浏览器中打开 URL
- 📱 本地应用程序 - 系统默认方式打开 APP、目录等
- 🔗 自定义命令 - 灵活配置执行参数和命令
-
📁 智能管理
- 📂 分类组织管理
- 🏷️ 标签系统
- 🔍 实时搜索过滤
- 📝 工具笔记和文档
- 🔄 自动扫描发现工具
-
🎨 现代化界面
- 🌟 毛玻璃效果
- 🎭 流畅动画交互
- 📱 响应式设计
- 🌙 优雅的视觉效果
- ⚡ 高性能渲染
| 特性 | 说明 | 优势 |
|---|---|---|
| 多路径支持 | 相对路径、绝对路径、URL | 灵活的工具组织方式 |
| 智能扫描 | 自动发现工具目录 | 快速导入现有工具 |
| Java 多版本 | 支持 Java 8/11/17 | 兼容不同版本需求 |
| 实时搜索 | 名称、标签、描述搜索 | 快速定位目标工具 |
| 配置管理 | YAML 配置文件 | 可视化配置管理 |
现代化的工具管理界面,支持分类查看和智能搜索
| 平台 | 最低版本 |
|---|---|
| macOS | 10.15 Catalina |
- 前往 Releases 页面
- 下载对应平台的最新版本
- 解压并运行
SpearX
# 1. 克隆仓库
git clone https://github.com/sspsec/Spear.git
cd spear-x
# 2. 安装 Wails CLI (如果未安装)
go install github.com/wailsapp/wails/v2/cmd/wails@latest
# 3. 构建应用
wails build -platform darwin/amd64 -clean
# 4. 运行应用
./build/bin/SpearX- 首次启动:应用会自动创建默认配置
- 添加工具:点击 ➕ 按钮手动添加工具
- 扫描工具:使用 🔄 按钮扫描现有工具目录
- 执行工具:点击工具卡片即可执行
# 三种添加方式:
1. ➕ 手动添加 - 逐个配置工具信息
2. 🔄 扫描默认目录 - 扫描 resources 目录
3. 📂 扫描自定义目录 - 选择任意目录扫描适用场景:Java 开发的桌面应用、安全工具、开发工具等
- 支持格式:
.jar文件 - 自动配置:根据工具需求选择对应 Java 版本
- 内存管理:支持自定义 JVM 参数如
-Xmx2g - 环境隔离:每个工具可独立配置 Java 环境
配置示例:
- ToolName: Burp Suite Professional
PATH: /Applications/Security/BurpSuite
FileName: burpsuite_pro.jar
VALUE: Java11 # 使用 Java 11
Optional: "-Xmx4g -XX:+UseG1GC" # JVM 优化参数执行过程:
- 检测配置的 Java 版本路径
- 如果未配置则使用系统默认 Java
- 构建执行命令:
{java_path} {optional} -jar {jar_file} - 在工具目录中执行命令
适用场景:命令行工具、脚本、需要终端交互的工具
- 支持格式:可执行文件、脚本文件、工具目录
- 自动定位:自动
cd到工具目录 - 终端打开:使用系统默认终端应用
- 环境保持:保持工具的工作目录环境
配置示例:
- ToolName: Nmap 网络扫描
PATH: /usr/local/bin/nmap
FileName: "" # 工具目录,无需指定文件
VALUE: openterm
Optional: ""执行过程:
- 打开系统默认终端
- 自动切换到工具目录
- 用户可直接使用命令行操作
- 适合需要交互式操作的工具
适用场景:在线工具、Web 界面、本地 HTML 工具
- 支持格式:URL 链接、本地 HTML 文件
- 浏览器兼容:使用系统默认浏览器
- 本地支持:支持
file://协议的本地文件 - 参数传递:支持 URL 参数和锚点
配置示例:
# 在线工具
- ToolName: GitHub
PATH: https://github.com
VALUE: Browser
# 本地 HTML 工具
- ToolName: 本地报告查看器
PATH: /Users/tools/reports/index.html
VALUE: Browser执行过程:
- 检测路径类型(URL 或本地文件)
- 调用系统默认浏览器
- 传递完整路径或 URL
- 支持传递额外参数
适用场景:本地应用程序、文档、媒体文件
- 支持格式:
.app(macOS)、各种文档目录 - 系统集成:使用操作系统的文件关联
- 权限处理:自动处理应用权限问题
配置示例:
# macOS 应用
- ToolName: Wireshark
PATH: /Applications/Wireshark.app
VALUE: Open
# 文档文件
- ToolName: 工具使用手册
PATH: /Users/docs/manual.pdf
VALUE: Open执行过程:
- 检测操作系统类型
- 使用系统 API 打开文件
- 自动调用关联的应用程序
- 处理权限和安全提示
适用场景:复杂的启动流程、需要特殊参数的工具
- 完全自定义:可以配置任意的执行命令
- 变量支持:支持路径、文件名等变量替换
- 环境变量:可设置特定的环境变量
- 脚本支持:支持执行复杂的启动脚本
配置示例:
- ToolName: Docker 工具容器
PATH: /path/to/tool
COMMAND: "docker run -it --rm -v {path}:/workspace tool:latest"
VALUE: Custom
Optional: "--network host"
- ToolName: Python 脚本工具
PATH: /tools/scanner
FileName: scanner.py
COMMAND: "python3 {filename} --config config.json"
VALUE: Custom变量说明:
{path} # 工具目录的绝对路径
{filename} # 指定文件的完整路径
{name} # 工具名称
{optional} # Optional 字段的内容SpearX 提供智能的执行方式检测和回退机制:
| 优先级 | 检测方式 | 回退策略 |
|---|---|---|
| 1 | 用户指定的 VALUE | 按配置执行 |
| 2 | 文件扩展名检测 | .jar → Java, .app → Open |
| 3 | 文件内容分析 | 检测文件头、执行权限 |
| 4 | 系统默认关联 | 使用操作系统文件关联 |
智能检测示例:
# 自动检测为 Java 应用
- ToolName: 自动检测工具
PATH: /tools/scanner
FileName: scanner.jar
VALUE: "" # 留空,系统自动检测为 Java
# 自动检测为终端工具
- ToolName: 命令行工具
PATH: /tools/nmap
FileName: "" # 目录形式,自动检测为 openterm
VALUE: ""# 搜索语法:
- 名称搜索:直接输入工具名称
- 标签搜索:输入 标签名
- 描述搜索:搜索工具描述内容工具目录/
├── 📁 信息收集/
│ ├── 📁 WebFinder/
│ │ ├── 📄 webfinder-next.jar # 主要可执行文件
│ │ ├── 📄 WebFinder.md # 工具说明文档 (自动识别)
│ │ ├── 📄 config.json # 配置文件
│ │ └── 📁 reports/ # 输出目录
│ ├── 📁 ScanDir/
│ │ ├── 📄 scandir-3.0.jar
│ │ ├── 📄 README.txt # 支持多种文档格式
│ │ └── 📁 wordlists/ # 依赖文件
│ └── 📁 Nmap/
│ ├── 📄 nmap # 可执行文件
│ ├── 📁 scripts/ # NSE 脚本
│ └── 📄 使用说明.md # 中文文档名支持
├── 📁 漏洞扫描/
│ ├── 📁 XrayGUI/
│ │ ├── 📄 super-xray-1.7.jar
│ │ ├── 📄 config.yaml
│ │ └── 📁 pocs/ # 漏洞检测脚本
│ └── 📁 Nuclei/
│ ├── 📄 nuclei # 二进制文件
│ └── 📁 templates/ # 模板目录
├── 📁 渗透测试/
│ ├── 📁 MiTian/
│ │ ├── 📄 mitan-jar-with-dependencies.jar
│ │ └── 📄 参数说明.md
│ ├── 📁 BurpSuite/
│ │ ├── 📄 burpsuite_pro.jar
│ │ ├── 📁 extensions/ # 插件目录
│ │ └── 📁 projects/ # 项目文件
│ └── 📁 Metasploit/
│ ├── 📄 msfconsole # 脚本文件
│ └── 📁 modules/ # 模块目录
├── 📁 Web应用/
│ ├── 📁 本地工具/
│ │ ├── 📄 index.html # HTML 工具
│ │ ├── 📄 style.css
│ │ └── 📄 script.js
│ └── 📁 在线服务/ # 快捷链接集合
│ ├── 📄 GitHub.url # Windows 快捷方式
│ └── 📄 VirusTotal.webloc # macOS 快捷方式
└── 📁 系统工具/
├── 📁 监控工具/
│ ├── 📄 Activity Monitor.app # macOS 应用
│ └── 📄 Process Monitor.exe # Windows 应用
└── 📁 文档工具/
├── 📄 工具使用手册.pdf
├── 📄 快速参考.docx
└── 📁 截图示例/
SpearX 在扫描目录时会智能识别以下内容:
📋 自动识别的文件类型:
# 可执行文件
*.jar, *.exe, *.app, *.deb, *.rpm, *.dmg
*.sh, *.bat, *.cmd, *.ps1, *.py, *.rb, *.pl
# 文档文件 (自动作为工具说明)
*.md, *.txt, *.rst, *.pdf, *.doc, *.docx
README.*, 说明.*, 使用手册.*
# Web 文件
*.html, *.htm, index.*
# 配置文件
*.json, *.yaml, *.yml, *.xml, *.ini, *.conf
# 快捷方式
*.url, *.webloc, *.lnk, *.desktop🔍 智能分类规则:
# 根据目录名自动分类
"info", "信息收集", "reconnaissance" → 信息收集
"scan", "扫描", "vulnerability" → 漏洞扫描
"exploit", "渗透", "penetration" → 渗透测试
"web", "网站", "browser" → Web 应用
"system", "系统", "monitor" → 系统工具
# 根据文件特征自动判断执行方式
*.jar → Java 应用
可执行权限的文件 → 终端工具
*.app, *.exe → 系统默认打开
http://, https:// → 浏览器打开
*.html, *.htm → 浏览器打开# 相对路径 (传统方式)
PATH: resources/info/webfinder
# 绝对路径 (新增支持)
PATH: /Users/username/tools/webfinder
# URL 路径 (Web 应用)
PATH: https://github.com# Java 环境配置
JavaPaths:
Java8: "/usr/bin/java" # Java 8 路径 (可选)
Java11: "/usr/bin/java" # Java 11 路径 (可选)
Java17: "/usr/bin/java" # Java 17 路径 (可选)
# 工具分类配置
Categories:
- CategoryName: 信息收集 # 分类名称
Tools: # 工具列表
- ToolName: WebFinder # 工具名称
PATH: resources/info/webfinder # 工具路径
FileName: webfinder-next.jar # 主要文件
VALUE: Java8 # 执行方式
COMMAND: -jar # 执行命令
Optional: "-Xmx2g" # 可选参数- 留空
JavaPaths配置,系统自动使用环境变量中的 Java
JavaPaths:
Java8: "/Library/Java/JavaVirtualMachines/jdk1.8.0_301.jdk/Contents/Home/bin/java"
Java11: "/Library/Java/JavaVirtualMachines/jdk-11.0.12.jdk/Contents/Home/bin/java"
Java17: "/Library/Java/JavaVirtualMachines/jdk-17.0.2.jdk/Contents/Home/bin/java"# 必需工具
Go 1.24+ # 后端开发语言
Node.js 18+ # 前端构建工具
Wails CLI v2.10.1 # 桌面应用框架
# 安装 Wails CLI
go install github.com/wailsapp/wails/v2/cmd/wails@latest
# 验证安装
wails doctor# 构建当前平台
wails build
# 跨平台构建
wails build -platform darwin/arm64 # macOS Apple Silicon
wails build -platform darwin/amd64 # macOS Intel
wails build -platform windows/amd64 # Windows 64位
wails build -platform linux/amd64 # Linux 64位
# 构建后清理
wails build -clean- 框架: Vue 3 + Composition API
- UI 库: Element Plus
- 构建工具: Vite
- 样式: CSS3 + 毛玻璃效果
- 图标: Element Plus Icons
- 语言: Go 1.24
- 框架: Wails v2
- 配置: YAML
- 依赖: 标准库为主
┌─────────────────┐ ┌─────────────────┐
│ Frontend │ │ Backend │
│ (Vue 3) │◄──►│ (Go) │
├─────────────────┤ ├─────────────────┤
│ • UI 组件 │ │ • 工具管理 │
│ • 状态管理 │ │ • 文件操作 │
│ • 事件处理 │ │ • 命令执行 │
│ • 毛玻璃效果 │ │ • 配置管理 │
└─────────────────┘ └─────────────────┘
▲ ▲
│ Wails Bridge │
▼ ▼
┌─────────────────┐ ┌─────────────────┐
│ Desktop │ │ System │
│ Runtime │ │ Integration │
└─────────────────┘ └─────────────────┘
| 模块 | 职责 | 主要功能 |
|---|---|---|
| 工具管理器 | 工具 CRUD 操作 | 增删改查、分类管理 |
| 执行引擎 | 工具执行控制 | 多类型执行、参数处理 |
| 配置管理器 | 配置文件处理 | YAML 解析、配置更新 |
| 文件浏览器 | 目录和文件操作 | 扫描、浏览、选择 |
| 界面控制器 | UI 状态管理 | 组件通信、状态同步 |
Q: 运行程序显示文件损坏不能打开?
首次运行提示验证签名失败,执行以下命令可以正常启动:
xattr -rd com.apple.quarantine Spear.app 或 codesign --sign - Spear.app
Q: Java 工具无法执行?
A: 请检查 Java 环境配置:
- 确认已安装对应 Java 版本
- 在设置中配置正确的 Java 路径
- 或保持路径为空使用系统默认 Java
Q: 工具扫描没有发现工具?
A: 请确认:
- 目录路径正确且可访问
- 目录中包含可执行文件 (.jar, .exe, .app 等)
- 具有目录读取权限
Q: 如何添加自定义工具?
A: 两种方式:
- 点击 ➕ 按钮手动添加
- 使用 📂 按钮扫描包含工具的目录
Q: 工具笔记保存在哪里?
A: 笔记以 Markdown 格式保存在工具目录下,文件名为
工具名.md
Q: 支持哪些文件格式?
A: 支持格式包括:
- Java:
.jar- Windows:
.exe,.bat,.cmd- macOS:
.app,.sh- Linux:
.sh,.py, 可执行文件- Web: URL 链接
Q: 如何备份工具配置?
A: 备份以下文件:
tool.yml- 工具配置- 工具目录中的
.md笔记文件
我们非常欢迎社区贡献!无论是代码、文档、问题反馈还是功能建议。
| 贡献类型 | 说明 | 如何参与 |
|---|---|---|
| 🐛 Bug 报告 | 发现问题并报告 | 提交 Issue |
| 💡 功能建议 | 提出新功能想法 | 功能请求 |
| 📖 文档完善 | 改进文档和示例 | 提交 Pull Request |
| 💻 代码贡献 | 修复 Bug 或添加功能 | Fork + Pull Request |
如果你想为界面设计做贡献:
- 设计原则: 遵循现代化、简洁、易用的设计理念
- 毛玻璃效果: 保持跨平台兼容性
- 响应式设计: 确保在不同尺寸下的良好表现
- 性能优先: 优化动画和渲染性能
感谢以下优秀的开源项目,让 SpearX 得以实现:
- Wails - 优秀的 Go + 前端桌面应用框架
- Vue.js - 渐进式 JavaScript 框架
- Element Plus - Vue 3 组件库
- Go - 高效简洁的编程语言
- Vite - 快速的前端构建工具
特别感谢所有为项目做出贡献的开发者和用户!
在Spear工具箱V5版本的基础上,新增了拖动工具按钮排序,增加了工具的描述信息,优化了页面显示以及字体显示问题,目前使用还未发现bug,在V4版本中自带的Java环境Java8、Java11基础上增加了一个Java17,均为带JavaFX版本的Java。原本像更改成自定义的java,但想了下用的基本都是这三个版本,不如自带,改了意义不大。
本次更新只编译了Mac的M芯片版本以及Intel芯片版本,本次以及后续将不会有Windows版本的适配。
界面优化:
- 新增拖动按钮排序功能
- 字体由之前的宋体修改为系统自带的字体
- 去除了工具按钮中的路径信息
- 新增一个Java17环境
- 在添加Java应用时,默认执行命令为-jar
- 编辑页面新增工具描述信息
界面优化:
- 使用Walis重构+Vue,全局毛玻璃特效,使用更加流畅
- 新增删除分类按钮
- 新增显示分类工具个数
搜索栏优化:
- 新增空格键聚焦搜索框
- 新增搜索后回车打开第一个工具
- 新增esc键取消搜索
添加工具优化:
- 新增选择工具功能,选择后自动填写路径以及工具名称
- 执行类型改为下拉选择框,不再手动输入
- 在选择分类处,填写不存在的分类名,会自动创建该分类
首次运行提示验证签名失败,执行以下命令可以正常启动:
xattr -rd com.apple.quarantine Spear.app
或执行:
codesign --sign - Spear.app
此功能是基于配置文件内容的,在对按钮排序时,对应的配置文件中相应的工具配置也会改变顺序。
Spear工具箱的用户,可兼容V5以及更早版本的配置文件。只需将V5老版本的resources文件夹以及tool.yml拖到新版包内Resources文件夹下即可。注意:Spear X中的resources文件夹增加了一个Java17的文件夹,需要保留。
注意:目前添加工具 只能添加resources文件夹下的工具,算是强制养成整理工具的习惯😄,有想过要修改这部分的逻辑,但还是不能忍受文件分散到磁盘的各个角落,遂放弃。
由于mac系统的安全机制目前增加app工具需要手动粘贴文件路径添加,不能选择文件,如有好的解决办法可以联系我。
在 Spear 工具箱 V2 版本 中,引入了 YAML 文件 来管理工具并动态加载 GUI 页面。虽然这种方式可以实现工具管理,但修改配置文件的方式不够便捷和直观。因此在 V3 版本 中,新增了两个按钮:添加工具 和 删除工具。这两个按钮本质上仍然是对 tool.yml 文件进行操作,添加工具时会将执行信息添加到 YAML 文件中,删除工具时则会从 YAML 文件中删除对应的工具配置。
此外,用户反馈希望能够在打开终端时避免使用系统自带的终端,而是使用 iTerm。为此,我添加了一个判断条件:如果电脑中存在 /Applications/iTerm.app,则使用 iTerm,否则使用 macOS 自带的终端。
最后,朋友们指出页面颜色不够好看,因此我更换了主题颜色,使用了简洁的 白色 和 黑色,并且支持自适应系统的浅色模式和深色模式。
- 删除:右键点击工具名称,删除按钮及工具配置。
- 修改:右键点击工具名称,修改对应工具的配置信息。
- 打开目录:右键点击工具名称,在 访达 中打开工具所在的目录。
首次运行提示验证签名失败,执行以下命令可以正常启动:
xattr -rd com.apple.quarantine Spear.app
对于 macOS Sequoia 测试版系统,执行:
codesign --sign - Spear.app
- 将工具目录(例如
JYso-1.3.1.jar)复制到 app 包内resources文件夹 中。 - 点击 添加工具 按钮,填写工具名称及路径,路径应以
resources开头(这与代码中的拼接方式相关)。 - 执行文件名为
Jyso-1.3.1.jar,因为该工具没有 GUI 界面,运行时会通过终端启动。选择 openterm 方式在终端中打开工具目录。
右键点击工具名称,可以删除对应工具和 tool.yml 配置文件中的相关内容。
-
M系列芯片编译:
go install fyne.io/fyne/v2/cmd/fyne@latest fyne package -os darwin -icon Icon.png -
Intel芯片编译:
export GOOS=darwin export GOARCH=amd64 fyne package -os darwin -icon Icon.png -
Windows编译:
GOOS=windows GOARCH=amd64 go build -ldflags -H=windowsgui -o Spear.exe main.go
Spear.app/Contents/Resources/resources/webshell/AntSword/antSword-2.1.15
/Applications/Spear.app/Contents/Resources/resources/pentest/BurpSuite/BurpSuite.app/Contents/Resources/app/BurpSuiteLoader.jar
与 Mac 版本基本相同,只是增加了 Python 环境及一些常用 Python 工具。支持自定义添加 Python、Java、GUI 程序等功能,用户可以根据自己的需求选择工具管理方式。








