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

- 更新插件初始化器集成三个插件系统(Service、Web、Local) - 清理WebPOC插件:移除重复端口检测和模拟漏洞数据 - 简化WebTitle插件:去除过度设计的WebInfo结构和技术检测 - 移除Web插件系统中的冗余辅助函数 - 统一插件接口实现,提升代码一致性
75 lines
1.7 KiB
Go
75 lines
1.7 KiB
Go
package app
|
|
|
|
import (
|
|
"fmt"
|
|
"sort"
|
|
|
|
"github.com/shadow1ng/fscan/common"
|
|
"github.com/shadow1ng/fscan/plugins/services"
|
|
"github.com/shadow1ng/fscan/plugins/web"
|
|
"github.com/shadow1ng/fscan/plugins/local"
|
|
)
|
|
|
|
// Initializer 初始化器接口
|
|
type Initializer interface {
|
|
Initialize() error
|
|
Name() string
|
|
}
|
|
|
|
// PluginInitializer 插件初始化器
|
|
type PluginInitializer struct{}
|
|
|
|
func (p *PluginInitializer) Name() string {
|
|
return "PluginInitializer"
|
|
}
|
|
|
|
func (p *PluginInitializer) Initialize() error {
|
|
// 直接调用三个包的函数
|
|
servicePlugins := services.GetAllPlugins()
|
|
webPlugins := web.GetAllWebPlugins()
|
|
localPlugins := local.GetAllLocalPlugins()
|
|
|
|
// 排序
|
|
sort.Strings(servicePlugins)
|
|
sort.Strings(webPlugins)
|
|
sort.Strings(localPlugins)
|
|
|
|
// 合并所有插件
|
|
var allPlugins []string
|
|
allPlugins = append(allPlugins, servicePlugins...)
|
|
allPlugins = append(allPlugins, webPlugins...)
|
|
allPlugins = append(allPlugins, localPlugins...)
|
|
sort.Strings(allPlugins)
|
|
|
|
// 设置全局变量
|
|
common.LocalPluginsList = localPlugins
|
|
|
|
// 记录插件统计
|
|
common.LogInfo(fmt.Sprintf("插件系统初始化完成: Service(%d) Web(%d) Local(%d) Total(%d)",
|
|
len(servicePlugins), len(webPlugins), len(localPlugins), len(allPlugins)))
|
|
|
|
return nil
|
|
}
|
|
|
|
// LoggerInitializer 日志初始化器
|
|
type LoggerInitializer struct{}
|
|
|
|
func (l *LoggerInitializer) Name() string {
|
|
return "LoggerInitializer"
|
|
}
|
|
|
|
func (l *LoggerInitializer) Initialize() error {
|
|
common.InitLogger()
|
|
return nil
|
|
}
|
|
|
|
// OutputInitializer 输出初始化器
|
|
type OutputInitializer struct{}
|
|
|
|
func (o *OutputInitializer) Name() string {
|
|
return "OutputInitializer"
|
|
}
|
|
|
|
func (o *OutputInitializer) Initialize() error {
|
|
return common.InitOutput()
|
|
} |