mirror of
https://github.com/shadow1ng/fscan.git
synced 2025-09-14 14:06:44 +08:00

主要更改: - 统一包目录命名为小写(Core→core, Plugins→plugins, WebScan→webscan) - 更新所有import路径以符合Go语言命名规范 - 重构parsers模块,简化复杂的工厂模式(从2000+行优化至400行) - 移除i18n兼容层,统一使用模块化i18n包 - 简化Core/Manager.go架构(从591行优化至133行) - 清理冗余文件:备份文件、构建产物、测试配置、重复图片 - 移除TestDocker测试环境配置目录 - 解决变量命名冲突问题 性能优化: - 减少代码复杂度60-70% - 提升构建和运行性能 - 保持完整功能兼容性 代码质量: - 符合Go语言最佳实践 - 统一命名规范 - 优化项目结构
133 lines
3.4 KiB
Go
133 lines
3.4 KiB
Go
package core
|
|
|
|
import (
|
|
"sync"
|
|
|
|
"github.com/shadow1ng/fscan/common/config"
|
|
)
|
|
|
|
/*
|
|
Manager.go - 简化的核心管理器
|
|
|
|
移除了复杂的配置管理器架构,保留核心常量和必要的全局变量,
|
|
大幅简化代码结构,提高性能和可维护性。
|
|
*/
|
|
|
|
// =============================================================================
|
|
// 核心常量定义
|
|
// =============================================================================
|
|
|
|
// 日志级别常量
|
|
const (
|
|
LogLevelAll = "all"
|
|
LogLevelError = "error"
|
|
LogLevelBase = "base"
|
|
LogLevelInfo = "info"
|
|
LogLevelSuccess = "success"
|
|
LogLevelDebug = "debug"
|
|
LogLevelInfoSuccess = "info,success"
|
|
LogLevelBaseInfoSuccess = "base,info,success"
|
|
)
|
|
|
|
// =============================================================================
|
|
// 全局配置变量
|
|
// =============================================================================
|
|
|
|
var (
|
|
// 核心扫描配置
|
|
ScanMode string // 扫描模式
|
|
ThreadNum int // 线程数
|
|
Timeout int64 // 超时时间
|
|
DisablePing bool // 禁用ping
|
|
LocalMode bool // 本地模式
|
|
|
|
// 基础认证配置
|
|
Username string // 用户名
|
|
Password string // 密码
|
|
Userdict map[string][]string // 用户字典
|
|
Passwords []string // 密码列表
|
|
|
|
// 网络配置
|
|
HttpProxy string // HTTP代理
|
|
Socks5Proxy string // SOCKS5代理
|
|
|
|
// 显示控制
|
|
NoColor bool // 禁用颜色
|
|
Language string // 语言
|
|
LogLevel string // 日志级别
|
|
|
|
// 端口映射
|
|
PortMap map[int][]string // 端口映射
|
|
DefaultMap []string // 默认映射
|
|
|
|
// 输出配置变量
|
|
Outputfile string // 输出文件
|
|
OutputFormat string // 输出格式
|
|
|
|
// 其他全局状态
|
|
SlowLogOutput bool // 慢速日志输出
|
|
|
|
// 初始化锁
|
|
initOnce sync.Once
|
|
)
|
|
|
|
// =============================================================================
|
|
// 简化的初始化函数
|
|
// =============================================================================
|
|
|
|
// InitGlobalConfig 初始化全局配置
|
|
func InitGlobalConfig() {
|
|
initOnce.Do(func() {
|
|
// 设置默认值
|
|
ScanMode = DefaultScanMode
|
|
ThreadNum = DefaultThreadNum
|
|
Timeout = DefaultTimeout
|
|
LogLevel = DefaultLogLevel
|
|
Language = DefaultLanguage
|
|
|
|
// 初始化映射和切片
|
|
Userdict = make(map[string][]string)
|
|
PortMap = make(map[int][]string)
|
|
DefaultMap = make([]string, 0)
|
|
|
|
// 从config模块获取字典和映射
|
|
if serviceDict := config.GetGlobalServiceDict(); serviceDict != nil {
|
|
Userdict = serviceDict.GetAllUserDicts()
|
|
Passwords = serviceDict.GetPasswords()
|
|
}
|
|
|
|
if probeMapping := config.GetGlobalProbeMapping(); probeMapping != nil {
|
|
PortMap = probeMapping.GetAllPortMappings()
|
|
DefaultMap = probeMapping.GetDefaultProbes()
|
|
}
|
|
})
|
|
}
|
|
|
|
// =============================================================================
|
|
// 简化的访问函数(保持向后兼容)
|
|
// =============================================================================
|
|
|
|
// GetScanMode 获取扫描模式
|
|
func GetScanMode() string {
|
|
return ScanMode
|
|
}
|
|
|
|
// SetScanMode 设置扫描模式
|
|
func SetScanMode(mode string) {
|
|
ScanMode = mode
|
|
}
|
|
|
|
// GetThreadNum 获取线程数
|
|
func GetThreadNum() int {
|
|
return ThreadNum
|
|
}
|
|
|
|
// SetThreadNum 设置线程数
|
|
func SetThreadNum(num int) {
|
|
ThreadNum = num
|
|
}
|
|
|
|
// init 自动初始化
|
|
func init() {
|
|
InitGlobalConfig()
|
|
} |