feat: v2.1.0 核心重构与功能增强
## 架构重构
- 全局变量消除,迁移至 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)
|
After Width: | Height: | Size: 252 KiB |
@@ -0,0 +1,22 @@
|
||||
BenchmarkCheckSum-24 659448997 1.821 ns/op 0 B/op 0 allocs/op
|
||||
BenchmarkArrayCountValueTop-24 4047 257006 ns/op 329822 B/op 5040 allocs/op
|
||||
BenchmarkTCPDial-24 4596 473517 ns/op 2424 B/op 27 allocs/op
|
||||
BenchmarkResultCollectorAdd-24 31689693 42.06 ns/op 99 B/op 0 allocs/op
|
||||
BenchmarkResultCollectorAddParallel-24 16319025 73.03 ns/op 99 B/op 0 allocs/op
|
||||
BenchmarkResultCollectorGetAll-24 501963 2320 ns/op 16384 B/op 1 allocs/op
|
||||
BenchmarkFailedPortCollectorAdd-24 18020209 72.26 ns/op 218 B/op 0 allocs/op
|
||||
BenchmarkEstimateScanTime-24 1000000000 0.1474 ns/op 0 B/op 0 allocs/op
|
||||
BenchmarkCalculateTotalTasks-24 345832 3346 ns/op 0 B/op 0 allocs/op
|
||||
BenchmarkBuildExcludeMap-24 8549785 143.4 ns/op 328 B/op 3 allocs/op
|
||||
ok github.com/shadow1ng/fscan/core 14.384s
|
||||
BenchmarkDecodePattern-24 23028650 44.72 ns/op 56 B/op 3 allocs/op
|
||||
BenchmarkDecodePattern_Complex-24 8355910 144.3 ns/op 40 B/op 13 allocs/op
|
||||
ok github.com/shadow1ng/fscan/core/portfinger 3.008s
|
||||
BenchmarkParseIPCIDR24-24 40768 29300 ns/op 57881 B/op 294 allocs/op
|
||||
BenchmarkParseIPCIDR16-24 829 1394559 ns/op 2692984 B/op 10122 allocs/op
|
||||
BenchmarkParseIPRange-24 42494 28765 ns/op 57816 B/op 289 allocs/op
|
||||
BenchmarkParseIPSingle-24 15086103 76.51 ns/op 64 B/op 4 allocs/op
|
||||
BenchmarkParsePortRange-24 303 4050534 ns/op 10277983 B/op 585 allocs/op
|
||||
BenchmarkParsePortList-24 1667944 700.6 ns/op 968 B/op 14 allocs/op
|
||||
BenchmarkParsePortCommon-24 1007536 1237 ns/op 1672 B/op 16 allocs/op
|
||||
ok github.com/shadow1ng/fscan/common/parsers 11.298s
|
||||
|
After Width: | Height: | Size: 74 KiB |
@@ -0,0 +1,11 @@
|
||||
"threads","duration_sec","ports_per_sec","total_ports"
|
||||
"200","30.221","42","1270"
|
||||
"400","19.124","66.4","1270"
|
||||
"600","16.162","78.6","1270"
|
||||
"800","14.099","90.1","1270"
|
||||
"1000","12.127","104.7","1270"
|
||||
"1500","12.102","104.9","1270"
|
||||
"2000","12.114","104.8","1270"
|
||||
"3000","12.122","104.8","1270"
|
||||
"4000","12.074","105.2","1270"
|
||||
"5000","12.116","104.8","1270"
|
||||
|
|
After Width: | Height: | Size: 96 KiB |
|
After Width: | Height: | Size: 166 KiB |
@@ -0,0 +1,8 @@
|
||||
"threads","duration_ms","packets_per_sec","total_packets","tcp_success","tcp_failed","success_rate"
|
||||
200,29330,43.3,1270,759,511,59.8
|
||||
400,18730,67.8,1270,759,511,59.8
|
||||
600,15270,83.2,1270,759,511,59.8
|
||||
800,13090,97.2,1270,759,511,59.8
|
||||
1000,11660,109.0,1270,759,511,59.8
|
||||
1500,11500,110.9,1270,759,511,59.8
|
||||
2000,11900,106.8,1270,759,511,59.8
|
||||
|
|
After Width: | Height: | Size: 102 KiB |
@@ -0,0 +1,6 @@
|
||||
"module_threads","duration_ms","packets_per_sec","tcp_success","tcp_failed","success_rate"
|
||||
"5","15211","83.49","759","511","59.76"
|
||||
"10","15253","83.26","759","511","59.76"
|
||||
"20","15221","83.44","759","511","59.76"
|
||||
"50","15254","83.26","759","511","59.76"
|
||||
"100","15217","83.46","759","511","59.76"
|
||||
|
|
After Width: | Height: | Size: 96 KiB |
|
After Width: | Height: | Size: 62 KiB |
@@ -0,0 +1,5 @@
|
||||
"time_seconds","duration_ms","packets_per_sec","tcp_success","tcp_failed","success_rate"
|
||||
"1","13110","96.87","759","511","59.76"
|
||||
"2","13295","95.52","759","511","59.76"
|
||||
"3","15231","83.38","759","511","59.76"
|
||||
"5","16451","77.20","759","511","59.76"
|
||||
|