mirror of
https://github.com/shadow1ng/fscan.git
synced 2026-09-25 12:41:53 +08:00
## 架构重构
- 全局变量消除,迁移至 Config/State 对象
- SMB 插件融合(smb/smb2/smbghost/smbinfo)
- 服务探测重构,实现 Nmap 风格 fallback 机制
- 输出系统重构,TXT 实时刷盘 + 双写机制
- i18n 框架升级至 go-i18n
## 性能优化
- 正则表达式预编译
- 内存优化 map[string]struct{}
- 并发指纹匹配
- SOCKS5 连接复用
- 滑动窗口调度 + 自适应线程池
## 新功能
- Web 管理界面
- 多格式 POC 适配(xray/afrog)
- 增强指纹库(3139条)
- Favicon hash 指纹识别
- 插件选择性编译(Build Tags)
- fscan-lab 靶场环境
- 默认端口扩展(62→133)
## 构建系统
- 添加 no_local tag 支持排除本地插件
- 多版本构建:fscan/fscan-nolocal/fscan-web
- CI 添加 snapshot 模式支持仅测试构建
## Bug 修复
- 修复 120+ 个问题,包括 RDP panic、批量扫描漏报、
JSON 输出格式、Redis 检测、Context 超时等
## 测试增强
- 单元测试覆盖率 74-100%
- 并发安全测试
- 集成测试(Web/端口/服务/SSH/ICMP)
180 lines
4.5 KiB
YAML
180 lines
4.5 KiB
YAML
project_name: "fscan"
|
||
|
||
before:
|
||
hooks:
|
||
- go mod tidy
|
||
- go mod download
|
||
- chmod +x .github/scripts/build-lite.sh
|
||
- bash .github/scripts/build-lite.sh {{ .Version }}
|
||
|
||
builds:
|
||
# 标准版 - 全部插件
|
||
- id: fscan
|
||
binary: fscan
|
||
main: .
|
||
env:
|
||
- CGO_ENABLED=0
|
||
goos: [windows, linux, darwin]
|
||
goarch: [amd64, arm64, "386"]
|
||
goarm: ["7"]
|
||
ignore:
|
||
- goos: darwin
|
||
goarch: "386"
|
||
- goos: windows
|
||
goarch: arm64
|
||
flags: [-trimpath]
|
||
ldflags: -s -w -X main.version={{ .Version }} -X main.commit={{ .ShortCommit }} -X main.date={{ .Date }} -X main.builtBy=goreleaser
|
||
mod_timestamp: "{{ .CommitTimestamp }}"
|
||
|
||
# 无本地插件版 - 排除本地模块
|
||
- id: fscan-nolocal
|
||
binary: fscan
|
||
main: .
|
||
env:
|
||
- CGO_ENABLED=0
|
||
goos: [windows, linux, darwin]
|
||
goarch: [amd64, arm64, "386"]
|
||
goarm: ["7"]
|
||
ignore:
|
||
- goos: darwin
|
||
goarch: "386"
|
||
- goos: windows
|
||
goarch: arm64
|
||
flags: [-trimpath]
|
||
tags: [no_local]
|
||
ldflags: -s -w -X main.version={{ .Version }} -X main.commit={{ .ShortCommit }} -X main.date={{ .Date }} -X main.builtBy=goreleaser
|
||
mod_timestamp: "{{ .CommitTimestamp }}"
|
||
|
||
# WebUI版 - 带Web管理界面
|
||
- id: fscan-web
|
||
binary: fscan
|
||
main: .
|
||
env:
|
||
- CGO_ENABLED=0
|
||
goos: [windows, linux, darwin]
|
||
goarch: [amd64, arm64, "386"]
|
||
goarm: ["7"]
|
||
ignore:
|
||
- goos: darwin
|
||
goarch: "386"
|
||
- goos: windows
|
||
goarch: arm64
|
||
flags: [-trimpath]
|
||
tags: [web]
|
||
ldflags: -s -w -X main.version={{ .Version }} -X main.commit={{ .ShortCommit }} -X main.date={{ .Date }} -X main.builtBy=goreleaser
|
||
mod_timestamp: "{{ .CommitTimestamp }}"
|
||
|
||
upx:
|
||
- ids: [fscan, fscan-nolocal, fscan-web]
|
||
enabled: true
|
||
goos: [windows, linux]
|
||
goarch: [amd64, "386"]
|
||
compress: best
|
||
brute: false
|
||
lzma: false
|
||
|
||
archives:
|
||
# 标准版归档
|
||
- id: fscan
|
||
builds: [fscan]
|
||
format: binary
|
||
allow_different_binary_count: true
|
||
name_template: >-
|
||
fscan_{{ .Version }}_
|
||
{{- if eq .Os "darwin" }}mac
|
||
{{- else }}{{ .Os }}{{ end }}_
|
||
{{- if eq .Arch "amd64" }}x64
|
||
{{- else if eq .Arch "386" }}x32
|
||
{{- else }}{{ .Arch }}{{ end }}
|
||
{{- if .Arm }}v{{ .Arm }}{{ end }}
|
||
{{- if eq .Os "windows" }}.exe{{ end }}
|
||
|
||
# 无本地插件版归档
|
||
- id: fscan-nolocal
|
||
builds: [fscan-nolocal]
|
||
format: binary
|
||
allow_different_binary_count: true
|
||
name_template: >-
|
||
fscan-nolocal_{{ .Version }}_
|
||
{{- if eq .Os "darwin" }}mac
|
||
{{- else }}{{ .Os }}{{ end }}_
|
||
{{- if eq .Arch "amd64" }}x64
|
||
{{- else if eq .Arch "386" }}x32
|
||
{{- else }}{{ .Arch }}{{ end }}
|
||
{{- if .Arm }}v{{ .Arm }}{{ end }}
|
||
{{- if eq .Os "windows" }}.exe{{ end }}
|
||
|
||
# WebUI版归档
|
||
- id: fscan-web
|
||
builds: [fscan-web]
|
||
format: binary
|
||
allow_different_binary_count: true
|
||
name_template: >-
|
||
fscan-web_{{ .Version }}_
|
||
{{- if eq .Os "darwin" }}mac
|
||
{{- else }}{{ .Os }}{{ end }}_
|
||
{{- if eq .Arch "amd64" }}x64
|
||
{{- else if eq .Arch "386" }}x32
|
||
{{- else }}{{ .Arch }}{{ end }}
|
||
{{- if .Arm }}v{{ .Arm }}{{ end }}
|
||
{{- if eq .Os "windows" }}.exe{{ end }}
|
||
|
||
checksum:
|
||
name_template: 'checksums.txt'
|
||
algorithm: sha256
|
||
|
||
changelog:
|
||
sort: asc
|
||
use: github
|
||
filters:
|
||
exclude:
|
||
- "^(docs|test|ci|chore):"
|
||
- "Merge (pull request|branch)"
|
||
groups:
|
||
- title: "🚀 新功能"
|
||
regexp: "^.*feat[(\\w)]*:+.*$"
|
||
order: 0
|
||
- title: "🐛 问题修复"
|
||
regexp: "^.*fix[(\\w)]*:+.*$"
|
||
order: 1
|
||
- title: "🔧 其他改进"
|
||
order: 999
|
||
|
||
release:
|
||
github:
|
||
owner: "{{ .Env.GITHUB_OWNER }}"
|
||
name: "{{ .Env.GITHUB_REPO }}"
|
||
draft: false
|
||
prerelease: auto
|
||
mode: replace
|
||
header: |
|
||
## {{ .ProjectName }} {{ .Tag }}
|
||
|
||
感谢使用 {{ .ProjectName }}!
|
||
|
||
### 版本说明
|
||
|
||
| 版本 | 说明 |
|
||
|------|------|
|
||
| **fscan** | 标准版,包含全部插件(推荐) |
|
||
| **fscan-nolocal** | 精简版,不含本地模块(体积更小) |
|
||
| **fscan-web** | WebUI版,带Web管理界面 |
|
||
|
||
### 平台支持
|
||
|
||
| 平台 | 架构 |
|
||
|------|------|
|
||
| Linux | x64, x32, arm64 |
|
||
| Windows | x64, x32 |
|
||
| macOS | x64, arm64 |
|
||
footer: |
|
||
**完整更新日志**: https://github.com/{{ .Env.GITHUB_OWNER }}/{{ .Env.GITHUB_REPO }}/compare/{{ .PreviousTag }}...{{ .Tag }}
|
||
extra_files:
|
||
- glob: ./dist-lite/*
|
||
|
||
snapshot:
|
||
name_template: "{{ incpatch .Version }}-dev-{{ .ShortCommit }}"
|
||
|
||
metadata:
|
||
mod_timestamp: "{{ .CommitTimestamp }}"
|